Miscellaneous repo/changeset fixes
* better git statuses handling
* refactoring and cleanup to make it testable
Tests for recent refactoring
Addressing comments, minor stylistic changes
Merge pull request #38 from odcinek/git_output_fixes

Miscellaneous repo/changeset fixes
GD error catching

This actually comes from @odcinek based on his BM changes
but it didn't get committed yesterday.
Merge pull request #39 from jaymzh/fix_git_gd

GD error catching
Between meals - always use requested knife path
Merge pull request #40 from jaymzh/knife

Between meals - always use requested knife path