Added an undefinedCodec to deal with getting BSONType undefined fields from the server.
Changes from codereview - updated the UndefinedCodec to read/write an Undefined type to prevent us using null values.  Added a unit test and Javadoc too.
Changes from codereview - updated JavaDoc comments again.