LPS-46842 move all repository initialization code into the new factories

RepositoryLocalService is responsible of the management of both com.liferay.portal.mode.Repository
and com.liferay.portal.kernel.repository.(Local)Repository. Move the later responsibility into
the new factories.
LPS-46842 rename the old RepositoryFactory* classes

The com.liferay.portal.repository.util.RepositoryFactory* classes were only used to create external repositories.
Rename them to ExternalRepositoryFactory* to emphasize that fact and avoid confusion with the new local and
non local repository factories.
LPS-46842 rename the createRepositoryImpl method

Make explicit the fact that it is creating external repositories.
LPS-46842 remove initialization code from the *Repository constructors

 - Move initialization logic out of the constructors and into the factories.
 - Rearrange code to make duplication between factories more obvious.
 - Fix (partially) error management: previously, all exceptions were caught
   and ignored when creating repositories (this made impossible to detect a
   permission error, the core subject of this ticket). Now, the factory only
   captures and ignores NoSuch* errors
LPS-46842 refactor to make duplication between factories more obvious
LPS-46842 remove duplication at createLiferayRepository(long, long, long) method

Introduce a generic in BaseRepositoryFactory to be able to handle both LocalRepository
and Repository instances. Delegate in subclasses to create instances of the correct
repository and to retrieve other entities (fileEntry, folder, etc.).
LPS-46842 refactor to make createLiferayRepository(long) identical in both factories
LPS-46842 remove duplication in the createLiferayRepository(long) method

Push implementation into base class and delegate repository instance creation
to subclasses.
LPS-46842 refactor `create` methods to make duplication explicit
LPS-46842 move common code into the BaseRepositoryFactory class
LPS-46842 move caching logic into the factories

 - Create a factory implementation responsible for caching repositories.
 - Move all caching logic out of the service.
 - Extract `getRepositoryEntryId` to a Util class to remove duplication
LPS-46842 add tests to verify repository creation

  - Repository*ServiceTest: used to check the overall behaviour hasn't changed
    after making the changes.
  - *RepositoryFactoryTest: used to verify the behaviour of the new classes