Don't erase existing reply-to relationships when editing messages
When you edit a message that was a reply to someone else, it "erases" the reply relationship. This doesn't wipe it on the server side, if you restart NeoChat you can see the reply chain restored. This patch simply makes sure it doesn't break locally which can be annoying.
This touches a LOT of stuff, because the code was never set up to keep these relationships in the first place (replacements and replies were considered mutually exclusive). I'm pretty sure I covered every place where you can edit (hovering edit button, context menu, up arrow hotkey) but please review.