Created generic MappingFuture that maps from a MongoFuture<U> to a MongoFuture<V>.
Using it for asyncOne and asyncCount to get rid of duplicated code.
Moved WriteResult to org.mongodb and changed CommandOperation and WriteOperation execute method
to return a CommandResult instead.
Re-implemented com.mongodb.WriteResult in terms of CommandResult and added all the missing methods
that we intend to support.