Fixes #4826 - rework reposets to not create repositories on repo set enable

The previous way of reposet enable was creating disabled repositories
when the reposet was enabled. These repositories were not usable till
enabled and it takes quite long to have them created, provided that
most of the disabled repositories will not be used anyway.

It also meant we needed to keep the repos in sync with the CDN, once
the reposet was enabled.

With the new approach, there is no notion of enabled/disabled
repository set. Instead, one can get the list of available
repositories for the repository set and enable/disable subset
of the available repositories. Enable available repository means
creation of the repository, disable means deletion. Therefore, no need
for having special flag tracking the enablement status on the
repository itself.
Fixes #5201 - allow disabling lazy accessors in tests

Makes it easier to set up the testing instances without explicitly
listing what should be disabled.
Fixes #5023 - Repository::Destroy doesn't continue when failed in ActiveRecord
Fixes #4826 - fix rubocop
Fixes #4826 - address review comments
Merge pull request #3980 from iNecas/reposets-rework

Fixes #4826 - rework reposets to not create repositories on repo set enable