Add allocator support to StringMaker<vector>

 - also extracted out 'rangeToString', in an attempt to make it easier
   to add support for other containers