Added ConnectionInfo and SemanticVersion classes. Moved some information from NodeInfo to Connectioninfo. Standardized on Count and Size (Size is in bytes).
Added Driver.Version.
Rearranged connection initialization so isMaster is only called once.
Created new ConnectionPool folder.
Worked a bit on ShardedClusterReadable/WritableNode.
Fixed warnings in DeleteCommandOperation by implementing more of the class.
ShardedClusterReadableNode needs to have a dedicated connection to ensure consistent reads.
Test Node directly instead of Cluster to find out if we are talking to mongos.
Worked a bit on commands. Still needs work.
Introduced Protocol layer. A protocol class is responsible for creating and sending one message (possibly followed by a getLastErrorMessage) and receiving and processing one reply.