[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.
Most of our number leaking happens when we create a number and it fails (most often because Homestead is down). In that case, we set force_delete=True on the call to remove_public_id so that the number is removed from the database even if Homestead is still down and our DELETE requests aren't successful.

In this path, we've got a validly created number and we're now trying to delete it. If Homestead is down, we should keep the number in Ellis ('leak' it within Ellis), as the alternative is to 'leak' it within Homestead/Homer. It can then be subsequently deleted when everything is back up.

If you're happy with that, I'll comment to that effect.