Use internal methods in GitAPITestCase rather than external process

This is not a complete change to prefer using internal
implementations, but a step towards that change.  Using internal
implementations improves our chances of detecting an implementation
bug at the risk of not detecting an incompatibility between command
line and internal implementation.
Use tested implementations for more operations in tests

Simplify GitAPITestCase.WorkingArea implementation, leaving only those
operations which do not have a direct replacement in the GitAPI.
Merge pull request #105 from MarkEWaite/master-use-more-internal-implementations

Use more internal implementations in GitAPITestCase