add a way to prevent cleanup during testing, to see the state of the test repo
add stdout when a command fails
fix checking for tag when a commit has multiple tags
deployed repository will have a detached HEAD; not be on a branch
use --branch in deploy because --version is reserved by Getopt::Long
always check origin for refs if it is available

This way we don't have to fetch down changes, and potentially merge them, until
absolutely necessary.
add deploy command