added support for JSON API errors

http://jsonapi.org/format/#errors

a JSONAPI_Error can now be thrown from a callback, fortune will render this back to the consumer in the correct format 

e.g.  

 throw new JSONProblemError({
    status: 400,
    detail: 'Foo was baz'
 });

a specialised Express error middleware will render any uncaught errors to JSONAPI Error output  
Seems like this setup (without a premature error catch here) means that _any_ failure to delete may* result in a 404, even if there's some other reason why the delete failed. *(if !!!error)