Add configurable number of IO dispatchers and synchronize on MongoDocument.putAll

Fixes #349 
Current code style in Hydra is to use tabs. Go with tabs for now.

We might want to move to spaces, but for now I'd prioritize consistency.