Fixed authentication bug and added code to check QueryFailure flag.
Make the callers of Receive be the ones responsible for checking the QueryFailure flag.
Added ThrowIfQueryFailureFlagIsSet method and MongoQueryException class.
Rename DefaultStreamFactory to NetworkStreamFactory.
Renamed DefaultClusterableServer to ClusterableServer and DefaultConnection to StreamConnection.
Renamed remaining classes that had Default in the name.
Added another layer to the onion. Connections in the connection pool need to be double wrapped.