Replaced tags with actual types, moved their use to a parameter.¹

1: Better this way to be unambiguous in intent. The serialization
function names are so generic that it's best to guard them, and
they'd often get in the way of a non-Cacophony serialization function.
Moved GR includes below all other includes to avoid configuration collisions.
InputSerializer, OutputSerializer: added static assertions for traits.