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`.
You know what, I'm going to change this so that it's a single constant key that stores the commit ID of the last checkout that was preindexed. This will ensure not only that that checkout has been preindexed before, but that it was *the last checkout* to be preindexed. The difference is pretty subtle, but there may be edge cases (thinking something like a hotfix between a preindex and the corresponding deploy) where this could matter.