Introduced MessageEncoderSettings as a way for the high level drivers to pass settings down to the message encoders (such as whether to use a lenient UTF8 encoding, required to get the last 2 MongoCollection tests to pass). Also refactored how MessageEncoderFactory works a bit given the new MessageEncoderSettings. All unit tests in all projects are currently passing.