The get/put routines now require the buffer size remaining to be read/written to permit checking and the iterator will update this value whenever iterator comparisions are made. Other direct uses of get/put have been updated.
Templated convert for going between any combination of UTF codecs with
an identity function specialisation for when src & target forms match.
Includes implmentations of json and basic_ostream << operators for
u16string & u32string.