Share one GitClient per Bookbinder lifecycle.
Code example repositories are only downloaded once

- Created CodeRepo
Refactors repositories

- Repository is a base class
- CodeRepo returns its code snippets