Added documentation for how to resolve references

This also is easier when you use the UriRetriever object, so adding that too.
Use a generic UriRetriever instead of an interface

This is because resolving a URL and retrieving it would have been code that
got duplicated.  Instead, this code is consolidated in UriRetriever.
Adding support for file:// URIs
Letting file:// URIs work
Updating tests to use UriRetriever instead of the interface
Initial commit
Initial commit - pulled code out of Constraint

This is so the retrieval of schemas can be used by things outside of the
Constraint objects, like the upcoming $ref support.
$ref support to fill out a schema before validation

This is not intended to be used during validation - instead it will find
all $ref entries in supported locations and replace them with the filled
out JSON schema to which the $ref pointed.
Removing bugs - I actually tested it this time
Fixing comment - missed a parameter
New test for ref resolver
Merge branch 'master' into ref
Merge branch 'master' into ref
Merge pull request #31 from fidian/ref

$ref support as a sort of preprocessor