[test] Enhance test execution

 * force rm in the test setup
 * Let the module that requires it execute test/setup.sh
 * Show full trace when an exception is thrown
[test] Add plumbing\* tests

 * Add plumbing\blob and plumbing\tree tests
 * Adding plumbing\commit tests
 * Add plumbing\annotatedtag tests
 * Add plumbing\{head,tag} tests
[test] Add porcelain\tree tests
[test] Add porcelain\tag tests
[test] Adding porcelain\branch tests
Add copyright headers