LPS-47511 move repository independent code into a BaseCapabilityProvider

BaseCapabilityRepository original purpose was to reuse code for both
kinds of repositories (LocalRepository and Repository), but it also
contained an implementation of a generic CapabilityProvider.

I've split the original definition into two classes:

  - BaseCapabilityProvider: offers a basic implementation of a provider.

  - BaseCapabilityRepository: contains only the minimum code necessary
    to enable code reuse between CapabilityLocalRepository and
    CapabilityRepository. It inherits BaseCapabilityProvider.