Return the same type as the original data structure

So, this brings the external behavior of mapstache more in line with the behavior of a normal map, but it feels a little hacky/imprecise. I can't think of a better way right now to guarantee that the type that goes in is the type that comes out.