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 UpdateProcessor. 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.

EDIT: Conflicts are in UpdateProcessor, not in DisasterControl.
@ZimonD I split UpdateProcessor into UpdateProcessor and Initializer, because I felt UpdateProcessor was handling two tasks where it should only handle one task. It was handling both the updates for existing clients and the initialization of new clients. This was even clear in the original UpdateProcessor class, because the two tasks were split into two methods.

I created the MessageBatcher class, because handling the caching of messages is a task separate from deciding what messages to send to which client. Also, UpdateProcessor and Initializer both needed such functionality, so creating a class for this task prevents code duplication.

As I said in my initial post, I did run the game. I connected using the client multiple times, without noticing any problems.