Starting to deal with nested complex objects in the pojo codec
Got PojoCodecTest working with JMock instead of Mockito (because debug information was more useful) - turns out reflection tests need to ignore Jacoco-added fields.  Tweaked Checkstyle so JMock expectations don't look too ugly.
Making a start on reusable way to encode/decode arrays
Introduced a Codecs class that encodes high level concepts like Maps, Arrays, and Iterables, so that we can reuse this functionality between PojoCodec and DocumentCodec.  Also added Validator concept so that CollectibleDocumentCodec and DocumentCodec can more easily provide their own types of field name validation.  Introduced individual codecs for every primitive array, performance tests prove this is 2 orders of magnitude faster than using reflection.  Added microbenchmark performance tests.  Beefed up unit tests, and now using JMock not Mockito