Implemented git cloning functionality and tests
- Add another item or two to .gitignore
- Add new poetry dependency and re-lock
- Move .env.example to env.example for visibility
- Created git_utils.py lib and tests
- A few bits of new functionality for cli.py and search_projects.py
- Some basic flake8 black-compat config and code cleanup
Bug: T337593