inverted how object gets handled in RunCommandAsync.
added initial definition of IMongoCollection<T> and implementation in MongoCollectionImpl<T>. Other minor refactorings.
added count to IMongoCollection as well as tests for it and CountOperation. Refactored some of the core functional tests to not require so much boilerplate.