scap backport: major refactor
Refactor of scap backport to improve readability/editability
- Creates classes for a single change and a collection of changes
- Creates a class to manage git repos and submodules cache
- Updates handling of multiple dependencies with same change-id:
- Allows backport to continue if all dependencies with the same change-id have been merged
- Selects a dependency from list if branches are the same or one has already been selected for backport
Bug: T334984