[no issue] fix bug where decoding a scalar (e.g. "1") using JValueCoder from mongo or avro would fail with "expected an object or array", make UnitCoder a StringSafeCoder and add some simple testing for JValueCoder and UnitCoder
[no issue] make immutable Vectors not mutable ArrayBuffers
[no issue] for encoding dates, don't directly call formatDate but instead call encodeString so a subclass can more easily override