Refactored UpdateProcessor and added tests

I have refactored the UpdateProcessor class to follow the single responsibility principle. The following has been changed:
- MessageBatcher now handles creating a batch of messages instead of the UpdateProcessor class.
- Initializer now handles initializing new clients, instead of UpdateProcessor.
- UpdateProcessor now only handles sending updates to clients.

Also, I changed the implementation of the initClients() method in Initializer (originally in UpdateProcessor) to be more to the point.

Lastly, tests for all these classes have been added, giving them near 100% coverage.

Note that an automatic merge is not possible because of some conflicts in DisasterControl. This is because of some changes to the same code by @ZimonD, but the conflicts can be solved easily (and I am willing to do that). Also, the result of merging this branch into master passes all tests and has been played for a while without problems.
Can you re-use the same MessageBatcher you initialized the `Initializer` instance with for the UpdateProcessor? That prevents having two objects doing the exact same thing.