Override toString in ReplicaSetStatus.
first iteration on the new fluent api spec.  It supports the CRUD operations,
but still missing is:
1. many of the query special fields
2. batch update/remove
3. aggregation
Renamed *Stream classes to *View
Fixed up names of query option methods on MongoView
Split out query options.
Implemented mapReduce
Added async support to MappedReducedIterable
formatting
printlns
Implemented aggregation pipeline.
Changed match to find
Replace updateAndGetOneOriginal with getOneAndUpdate, etc.
Added updateOne and removeOne.
Fixed a stray broken test.
First foray into new user of Operation and AsyncOperation as interfaces used to define individual commands.  Starting with CountOperation and AsyncCountOperation
Fixed exception mapping
messing around:
Changed MongoView.project to MongoView.fields
Turned Session class on its head. Instead of executing an Operation, it creates instances of ServerConnectionProvider. Separated Operation and ProtocolOperation in preparation for clean handling of write commands.  Operation instances are constructed with Session instances, while ProtocolOperation instances are constructed with Connection instances.
Renamed ProtocolOperation to Protocol, and same for all implementations.
Fixed broken Spock tests
some javadoc
codenarc changes