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
Merge pull request #147 from iainbeeston/validator_tidy

Validator tidy
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