Changed DBDecoderFactory to interface and added method.
MongoClientURI.getCredentials now returns a List
DatabaseTestCase.setUp now throws Exception
Added support for truncating a ChannelAwareOutputBuffer, in order to support breaking up messages that exceed the maximum allowed message size.
Added support for breaking up an insert into multiple messages, so that no message exceeds the maximum message size.  Note that currently the maximum size is hard-coded to 48M.  The design may need to change, as the way this works is a bit unintuitive.  MongoRequestMessage.encode(buffer) used to return void.  Now it returns a reference to the next message that needs to be sent.  In most cases this will be null, but in the case of a multiple-document insert, if the message exceeds the max message size, it will return a MongoInsertMessage constructed with a list of the remaining documents that didn't fit in the first message.  This will continue until there are no more documents.

In order to make this work, also had to change MongoInsert to take a List instead of an Iterable, so that it's possible to slice the List for each subsequent message.  A different design could allow an Iterable to be used, though it's not clear how important this is.