Awesome deploy

This commit introduces a new fab command, `awesome_deploy`, that preindexes and, provided preindex completes quickly, deploys. For 90% of deploys, this reduces deploy to a single step.

This PR touches functions used in current normal deploy only minimally: makes preindex log its completion to redis and adds a way to check for completion; splits deploy function up. Neither of these should affect normal deploy. I propose we keep using normal deploy for another few days, but use `awesome_deploy` on staging. To that affect, I've also changed the rebuildstaging `--deploy` option to use `awesome_deploy`.
Instead of try/finally you can do

```py
with settings(warn_only=True):
    ...
```