[Reviewer: Alex] Release numbers on error

Pull request of the year, don't all cheer at once.

This handles errors from synchronous HTTP requests correctly, fixing https://github.com/Metaswitch/ellis/issues/49.

I've tested:
* Intentionally setting my Homestead hostname wrong, creating a number, and checking that it's removed from Ellis after Homestead creation fails
* Intentionally setting my Homestead hostname wrong, deleting a number, and checking that it's kept in Ellis after Homestead deletion fails
* Intentionally setting my Homer hostname wrong, creating a number, and checking that it's removed from Ellis after Homer creation fails
* Intentionally setting my Homer hostname wrong, deleting a number, and checking that it's kept in Ellis after Homer deletion fails
* Having a subscriber that's deleted from Homestead but not Ellis, and checking that the 404 to the DELETE response is treated as a success
* Running the live tests to verify that the standard create/delete/modify API calls still work

It's not pretty, but per previous discussions, more major surgery than this on Ellis probably isn't worth it.
Does this leave an error path where we still leak numbers? If not, why not? (and please explain with a comment).