acu115916 moved git classes under git module for better indirection
GitError and ShellError are now at the same level and are used to derive specific BranchError, CommitError, etc.