Update error messages, add error types

I've rewritten all the error messages to be more plain English, but also made errors more useful to machines by giving them all `Symbol`ic types. This makes it super easy to choose how to deal with schema violations using `case`s.

Not backwards compatible, so might need a version bump to 0.3.0.
Yes! That should work as well.

On Wed, Sep 03, 2014 at 07:14:20AM -0700, Isaac Seymour wrote:
> > @@ -108,8 +108,8 @@ def parse_data(data, parent, fragment)
> >        if !data.is_a?(Hash)
> >          # it would be nice to make this message more specific/nicer (at best it
> >          # points to the wrong schema)
> > -        message = %{Expected schema; value was: #{data.inspect}.}
> > -        @errors << SchemaError.new(parent, message)
> > +        message = %{Schema not found!}
> 
> `{data.inspect} is not a valid schema.` is nice and descriptive if I'm understanding this method correctly?
> 
> ---
> Reply to this email directly or view it on GitHub:
> https://github.com/brandur/json_schema/pull/15/files#r17051532