Preserve HTTP staus codes in errors if possible

Dropbox being a REST driven service often returns useful information
in the HTTP error code.  Make sure we return these in a custom Error
type if possible.
Handle unexpected HTTP error codes