Run json-schema.org's common test suite
Init/update submodule as required
Switch to inferior indent scheme
Display *why* a common-test-suite test failed

This is good, because it's easier to debug a problem if you know *why*
there's a problem.
Fix bad ref test for proxy support

If you run behind a proxy, you won't get a socket error, you'll get an
OpenURI::HTTPError instead (because the proxy will return a 503).  That's
perfectly acceptable, too.
Support validation of draft-04/hyper-schema

(Tests are part of the JSON-Schema-Test-Suite submodule; my PR hasn't been
merged upstream yet, though)

Given that I didn't actually need to change anything important to get the
validator to validate test schemas, I'm not entirely convinced that I've
done the right thing here -- or else the architecture of the validators is a
bit overengineered.
Make intra-doc refs work when validating with :fragment

Here's a weird corner-case for you: when calling JSON::Validator.validate
and using the :fragment option, any references to other parts of the same
schema would fail.  Why?  Because the handling of :fragment involved
creating a *new* schema, with a new URI, with a subset of the original
schema.  Internal refs (as handled by JSON::Schema::RefAttribute) would try
to resolve the ref within this sub-schema, and go *fwackoom* because the
structure of the sub-schema wouldn't have the right path in it.

I've adjusted the code for schema_from_fragment to not call
initialize_schema (and hence not create those new sub-schemas), and instead
just create a new JSON::Schema object (which, according to the comments, is
the only reason that initialize_schema was being called).  This causes no
new schemas to be created, and RefAttribute can go looking up its ref in the
right place.
Pulled nested classes out of json-schema/validator.rb

Error classes, schema:validator and attribute
Removed duplicate code for accessing validators, adding a new
Got rid of version_string_for and metaschema_for, in favour of having
validators nominate their own names and metaschemas
Merge pull request #130 from iainbeeston/refactor_slightly

Refactor classes and validator accessor methods
Merge pull request #124 from mpalmer/fix-bad-ref-test

Fix bad ref test for proxy support
Merge pull request #126 from mpalmer/all-of-ref-test

Another allOf ref test, and rename class
Adding Matt Palmer to contributors
Fix use of `'required': false` in draft 3 strict mode
Made validation sub errors indicate where they come from

When using anyof or allof in a schema, all of the validation errors for
all of the subschemas are shown in a flat list - all concatenated
together. This makes it very hard (or impossible) to see where in the
schema individual errors come from, and makes it hard to debug the
errors in your json.

This change groups subschema errors together, according to which schema
they appeared under.
Made subschema errors use the attribute type in their key

Feels more general, and easier to understand
Added tests around subschema error messages
Do not compact before checking minItems

Fixes #129
Merge pull request #134 from seomoz/fix-draft3-strict-mode

Add support for `"required": false` while using draft3 with strict mode