Async Conversion using iHat (Don't merge yet)

:exclamation: Don't merge.

These were the changes required to use the iHat webhook feature. I am opening up the PR for review, but I am hoping to give one refactoring pass tomorrow morning.
I wonder whether this line should move to the top of this method. In case no manuscript with `manuscript_id` exists, `Manuscript.find(manuscript_id)` will raise an exception. At that point the `ensure` block will be invoked, but `tempfile` will not have been defined yet, and you'll get an exception.

Also, you should re-raise after `tempfile.unlink` so legit exceptions aren't being swallowed.