Full set of HTTP errors

These should help us produce more consistent response messages when raising problems like a 404.

Most of this shamelessly pulled out of Excon.