Implemented Operations to simplify get indexes and find and modify (find & remove/replace/update).  As part of this work:
  - Refactored write operations so that they no longer require a Command.  Command is being phased out in favour of containing the functionality in Operations classes.
  - This meant changing classes further up the stack to deal only with Documents without wrapping them in a Command, simplifying the code in most places
  - Created a DocumentHelper to make creation of things like command documents a lot simpler
  - Greater test coverage for the areas affected by the new operations; also added tests to areas affected by refactoring
  - Moved creation of Settings objects into MongoClient classes, a refactoring that makes creating tests for the operations a lot simpler
  - Created CommandWithPayloadEncoder and CommandResultWithPayloadDecoder to allow correct use of custom encoders for find and replace/remove/update.  Find and Replace now works with custom types.
  - Fixed Exceptions for command results that return a custom type
  - Ignored a Find Bugs warning for all classes, since it was adding nothing and was ignored for all classes it was found in