Second attempt at handling $refs.

Example PR only.

Note that there's still a `reference_methods.go` file :/ This time it's temporary though and can be removed once we figure out how to access an arbitrary type's `EmbeddedSchemas` field via reflection.

The changes to "additionalProperties" actually fixes a second problem unrelated to $ref handling -- that the "additionalProperties" keyword should be able to exist on its own. The test suite only covers it incidentally during one of the $ref tests though, which is why the problem didn't come up before.