[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.
The contract of this function is that, if it's successful, it calls the callback with a successful HTTP response. If it fails, it calls the callback with a HTTP response indicating failure.

We fulfilled this contract automatically when we were just passing the callback through to another async HTTP request, but when we moved to doing some synchronous HTTP requests, we broke that contract (we'd throw an exception on failure, so the caller wouldn't know to delete the number).

Manually firing the callback when a synchronous HTTP request fails just fulfils this function's contract.