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.
@ptrckkrmr That is possible if `UpdateProcessor` and `Initializer` never run at the same time. But they never do, do they?