Added support for commiting and pushing dotfiles repos.

Adds three commands:

* `ghar commit`: commit to repos. Takes a `-m` argument for a commit message, or `-a` to generate a message with a timestamp.
* `ghar push`: push upstream.
* `ghar cap`: "commit and push", same as doing a commit then a push. Also takes `-a`/`-m` arguments.

The bulk of this work comes from @mmirate; I just made some bugfixes and merged it in.