Added separate classes to implement JSON Reference and JSON pointer
Improve error handling and document navigation by providing each object with context information.
Context information contains the base document and the JSON pointer to the objects position in the document.
This can be used to navigate to parent and sibling elements easily. Such navigation was not possible before.
It also allows for more convenient error reporting as the errors are annotated with their position in the document.
fixes #29 Fixed handling of recursive structures in Schema definitions.