Added the ability to reference schemas.

Schemas may now be composed of foreign schemas via the RFC draft for JSON References. In OOP terms, this allows schemas to be encapsulated and independantly developed and pulled into larger, more complex schemas, and it allows one schema to be extended ala inheritence.

Closes #2