Improve error messages shown from Backdrop

- Handle previously uncaught `ConnectionError`
- Make 4 new subclasses of Backdrop error:
 - BackdropAuthenticationError
 - BackdropConnectionError
 - BackdropBadRequestError
 - BackdropUnknownError
- Factor out the function which sends & handles errors so it's common
 between create & delete requests.
- Extract and use the error message from the Backdrop response JSON if
 available.

https://www.pivotaltracker.com/story/show/65645322

[Delivers #65645322]