Change formatAsJSON to a template struct, named FormatImpl, so that we can use partial specializations for groups of types that have similar implementations.
Change formatAsJSON to a template struct, named FormatImpl, so that we can use
partial specializations for groups of types that have similar implementations.

seec-team/seec,seec-team/seec,mheinsen/seec,mheinsen/seec,mheinsen/seec,seec-team/seec,seec-team/seec,seec-team/seec,mheinsen/seec,mheinsen/seec