Refactor cache functionality to remove common package dependency
### Problem
Due to cyclic dependencies, it's almost impossible to call into the cache package from elsewhere in the code base. This makes migrating to CI Functions harder.
### Proposed Solution
- Move configuration from common package to a new `cacheconfig` package
- Remove `common.Build` dependency from the cache package
- Solve issues like how feature flags affect config outside of the cache package
### Benefits
- Eliminates cyclic dependencies in the cache package
- Enables easier integration with CI Functions
- Improves code modularity and separation of concerns
### Implementation Details
- Create new `cache/cacheconfig` package with cache configuration types
- Update all cache adapters (S3, GCS, Azure) to use the new configuration types
- Refactor cache functionality to remove dependency on `common.Build`
- Update tests to reflect the new structure
### Acceptance Criteria
- [X] All existing cache tests pass
- [ ] Manual cache test with one configured cloud bucket works
### Related Work
This refactoring is needed to support the migration to CI Functions platform.
Sources: [Draft: Refactor cache functionality to remove common package dependency](https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/6366)
issue