ENH: Refactor [de]serialize format for brevity

Change parameter [de]serialization to use a much more terse syntax that
omits the schema information (i.e. parameter types and legal value
information) and provides just the name/value pairs. Refactor to
eliminate the ParameterSerializer dependency (which is not needed for
this purpose) in order to have a separate mode where only JsonCpp is
used, and provides this feature. Move common helper methods to a new
header, rather than writing them out to every CLP header. Switch
parameter order so that serializing uses deserialized parameters (helps
with testing). Create a small helper class for writing macros in order
to eliminate the readability-killing boilerplate code for this purpose.
Refactor GeneratePost to avoid error-prone duplication.

The eventual goal is to use json-ld markup to preserve the 'schema
information', however that is not actually required for the feature to
function, and so is not implemented yet.
STYLE: Avoid file(GLOB)

Replace use of file(GLOB) with explicit lists. Use of file(GLOB) is
considered bad practice because it is not guaranteed to trigger a
reconfigure when the list of files changes, which can lead to broken
builds.