Plan: 1. Migrate to using async/await pattern as opposed to completion handlers in LocalGitServiceProvider 2. Design better abstraction and implement local Git features as an extension This allows us to: - Implement additional Git features without increasing complexity of the core code - Implement Git over SSH #886