feat(HTTPError): Support custom media types for error responses

This patch adds support for serializing errors to other media types
besides the generic JSON and XML formats. It does this in two ways:

1. The default serializer will check for a '+xml' and '+json' suffix
   in the media type requested by the client, and if present, serialize
   to XML or JSON, respectively. This was thought to be better than
   simply returning an empty body in the response.

2. The default serializer can now be overriden with a custom
   serializer function, which affords complete control over the
   error serialization process.

Closes #265
I've been thinking about this, and trying to remember where this business of triggering on a blank title came from. I want to say that at some point it was necessary for backwards compatibility. Regardless, I don't see any reason not to clean up the design for 0.2. 

Let me do another patch and try to make the design more explicit. I'd love to get your feedback on the new patch before letting it land.