[WIP] Property introspection, JSON adapter

An attempt to bring some light reflection into Swift for JSON parsing.
I interpret “codec” to mean “the thing which determines how to encode and decode,” but that's not what's actually happening here.

That logic will actually live in the `JSONModel`, but in a declarative way—this type exists only to add protocol conformance and hook it all together.