Lots of small changes

- Add (tableflip) command for purging workdirs in the event of git being
  upset.
- Started moving away from Rugged due to its dependency on compile-time
  features of libgit2. Recompilation may not be an option available
  to everyone. Replacing it with system("git", ...) calls
- refactor system("git", ...) to git(...)
- use `git am`+`git commit --amend` instead of `git apply`+`git commit`
  to simplify  the patching process. I was finding `git apply` kept
  doing weird things to workdir or index that would break future
  patching. Frankly, I am bad at git, so this is probably my fault.
- Make merge test do a full run but w/ `git push` and label changes
  stubbed out.