JSON::Schema::Loader

Adds a JSON::Schema::Loader object/interface that can be used to control how URLs/paths are fetched. The default behavior is the same as on master: unregistered schema references will be fetched used open-uri or File.read. The default implementation accepts initializer arguments that can be used to reject all URIs, all files, or as callbacks that will receive an `Addressable::URI` or `Pathname` object and should return `true` or `false` to indicate whether it should be requested.

I've added documentation to the README explaining how to configure the loader, either by replacing the default instance used, or supplying a loader to use for a single call to `validate`.

This addresses issues from #47, #65, #152, #173 / #174. Probably others. I didn't add any support for my `NullLoader` idea mentioned in #152; since it's a simple interface to implement, users can just define their own which returns an empty schema (`JSON::Schema.new({}, ...)`).
It shouldn't, since there's no request being performed. This is a sign of a less-than-great name for this class, but I wasn't able to think of anything better than Loader. It's role is to read (as in I/O) the schema's definition and return a ready-to-go `JSON::Schema`. Any better ideas?