Restructure exception hierarchy

This commit moves all the exceptions over to an
exceptions.py module.  It also creates a base exception,
`JMESPathError` that all other exceptions in the module
are a child of.