change much of the way respond enables response generation

- specify a typeclass for generating response bodies with content negotiation
- create a typeclass for reporting errors along the same lines
- add tools for building response bodies
- add libraries for handling Accept header interpretation and text formatting
- implement multiple response formats for ErrorReport (the standard ReportableError)
- update comments and descriptions