Improve error reporting

Validation messages now use a consistent structure similar to that used in the `json-schema` gem. Each warning or error message will have:

* type (:metadata or :integrity)
* message
* fragment (path into relevant bit of datapackage.json)

Tweaked the formatting of the command-line tool but its still as ugly as sin.

Closes #5