Use Addressable gem to handle URIs

This would cover #173 
It adds support for Asian URLs.
When I changed the validation for the URI format to Addressable, I thought that the value should not be escaped (it was introduced to establish compatibility with Asian URIs by eca92afb219791b928426c95b2556693db82b879). The value either is parsable as URI as is or not and in the latter case no valid URI.
What do you think?
I don't see any upstream reports of this. I'm not sure exactly what to report if I were to open an issue. It's partly an artifact of [our test data](https://github.com/hoxworth/json-schema/blob/master/test/test_jsonschema_draft4.rb#L268):

~~~rb
Addressable::URI.parse('http:')
#=> raises Addressable::URI::InvalidURIError

Addressable::URI.parse('::boo')
#=> returns a URI

Addressable::URI.parse('::boo').to_s
#=> raises Addressable::URI::InvalidURIError: Cannot assemble URI string with ambiguous path: '::boo'
~~~

addressable has a lot of tests that assert it can raise on `.parse()` alone, and indeed in most cases it does.