[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.
I worry that by not going through the reactor we could hit even *more* subtle bugs. Plus we lose any logging and exception handling that the reactor is doing. What happens if `callback` raises an exception? 

Can we pass the callback to the reactor to call for us. That seems like a better approach than calling it synchronously in this method.