Go go queries

Sum of #1713 plus moar stuff.

> Time for MessageIndex.controller to become query-free.
> This PR brings quite a bit of changes, especially I tried to "delegate" logging to the functions that actually do the actions. For example approveTopics, now can logs the approval/unapproval of the topics passed. To me seems more logical than have to explicitly call the logging every time the function is used. There is a parameter (false by default) that tells the function to log or not).
> 
> The PR may require some testing (that I have not yet done :angel: ) and maybe adding a test or two wouldn't hurt. :angel:

> Okay, even more scary: Removed the queries from MergeTopics.controller too.
> To do so, I created a class and stuffed lots of stuff there.

Plus, I added some more work on the removal of "messages".
I create a class to deal with any kind of removal related to the forum (topics and posts, deletion and restore), put there some logic that was in controllers before and so on.
It seems a good thing to do, but I'm open to suggestions.
With that also RemoveTopic.controller is free from queries.