Fixes and Opinions

First off, great project. Very well coded. This PR has a handful of different things in it. Each commit is modular and focused on a specific fix or change. I've added/update specs where appropriate. I'm happy to split this up into multiple PRs but I wanted you to review it first and let me know what you thought.

3 of the commits are bug fixes with specs to show failures & fixes.

The other 2 are **backward incompatible changes** but I think are more sensible defaults (and easily overridden). Here are my suggestions:

* Change the default reference point (when not specified) from *master* to *HEAD*. To keep the current functionality, one only needs to add `deploy.branch = 'master'` to their config. On the other hand, deploy from a particular branch for different deploys is impossible given the current config.
* Change the default to NOT use the -f flag on deploy. I've added a `:force` options so anyone who would like to maintain that option, in staging for instance, can simply add `deploy.force = true` to their particular deployment config.

I'm happy to answer any questions you may have. This PR really comes out of requirements that I need to use this project. I hope they will help others. Let me know if you have questions or need commits in another fashion.