Refactoring to create a core, async and rxScala drivers
Ensure mongoClients are closed in tests

Fixed imports
rxScala now working as expected
Copyright normalisation
Documentation update
Cursor has side effects
Getting there
Async cake is a go
Cleaned up the imports
Ensure return of the correct type

MongoCollectionViewProvider[T] should always return a CollectionView[T]
Clean up overrides
Removed nesting of ListResultType

Also concrete methods explicitly return the correct type
Added a executeAsync for QueryOperation returning CursorType[T]
RxScala now eats cake
Close mongoclients in tests
Renamed all Raw methods
Normalised Helper method transformer function names
Added core signatures for MongoClient implementation
Documenting the providers
More docs work