Unescape ref fragment pointers

The `~0` and `~1` syntax are specified in the JSON Pointer draft:

http://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-07#section-3
Renamed fake_uri to fake_uuid

Because it generates a uuid, not a uri
Refactored out the code to generate a uri to a single method
Simplified how optional gems are loaded
Moved JSON::Util::UUID from /lib/uri to /lib/util

Doesn't have anything to do with uris, surely?
Made it explicit that we need rubygems version 1.8+

Because of the new, abbreviated rubygems loading code
Add a specific minimum ruby version to the spec
Merge pull request #147 from iainbeeston/validator_tidy

Validator tidy
Resolve merge conflict in json-schema.gemspec
Merge pull request #146 from pd/ref-fixes

Unescape ref fragment pointers
Add more contributing guidelines
Merge branch 'master' of github.com:hoxworth/json-schema
Add 1.8 to travis
Revert "Add 1.8 to travis"

This reverts commit 9ff2f5067a798e0a6da18526f0965f5515456d94.
Enable draft4/dependecies test
Implement failing testcase for validating a schema from another directory
Update metaschema location to find resources from gem root

Conflicts:
	lib/json-schema/schema/validator.rb
metaschema: use path relative to __FILE__, not gem_dir
Store static regexps in constants for re-use
Added new travis test runs that use yajl, multi_json and uuidtools

We have a few extra code paths that will only be activated if we use
one of these gems. Adding them to the build matrix should cover those
cases with all the tests in the regular test suite.