LPS-47511 add repository capabilities basic classes

See LPS-47325 description for details.
LPS-47511 make all repositories be capability providers
LPS-47511 introduce base class to remove duplication in capability repositories

As local and non local repositories don't share a common interface, we need to
abstract over the class with a generic and delegate type dependent operations on
subclasses.
LPS-47511 Source formatting
LPS-47511 rename type parameter to suppress warning
LPS-47511 use %s in for all parameters in format strings
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.
LPS-47511 Use key because it's string
LPS-47511 Can we use 2 %s?
LPS-47511 SF
LPS-47511 Jorge made SystemException a RuntimeException
LPS-47511 Jorge made SystemException a RuntimeException
LPS-47511 SF
LPS-47511 SF
LPS-47511 You'll just get a hashcode if you don't do this
LPS-47556 Remove unused var
LPS-47581 SF
LPS-47389 Create a ThemeDisplayTestUtil that provides a basic mock object for ThemeDisplay, so that developers can use it to fill in what they need on their tests. Note that this basic themeDisplay object will be set up in the ServiceContext created by tests always, whether is needed or not: this could be a consequence of high coupling between them and the need of knowing what is inside the service-context to use it
LPS-47389 Sort
LPS-47389 Simplify