various upgrade shutdown logic

* refactor the rate-limit shutdown
* add --exit-on-upgrade commandline option
Merge pull request #365 from racker/features/upgrade_restarts

various upgrade shutdown logic