<check-sources> Add package exclusion handling

Added `exclude` field to `RepoTuple`

Added logic to parse excludes from ini files/default `RepoDB` dataset

Added `merge_excludes` to `check_sources.py`, sets repo `exclude`
option to existing value(s) + any new values provided

Added `set_excludes` to `oo-admin-check-sources.py` and call from
`run_checks`. Repos that are required and available and have `exclude`
set in the `RepoDB` object will have their package exclusions modified
accordingly.
Merge pull request #161 from dobbymoodge/check-sources-excludes

<check-sources> Add package exclusion handling
<check-sources> Clean up long lines, unpythonic names

First big pass with pylint to bring code close to PEP 8 style. Should
be no logical changes other than `OpenShiftCheckSources._init_yumbase`
returning the yumbase object instead of setting `self.yum_base`
directly.
Merge pull request #168 from dobbymoodge/check-sources-cleanup

<check-sources> Clean up long lines, unpythonic names, etc.
<oo-admin-check-sources> Bug 1028572 - uniquify flatten results
https://bugzilla.redhat.com/show_bug.cgi?id=1028572

This bug was caused by `flatten()` allowing duplicate values in its
results. Wrapped returned list in `list(set())` to guarantee
uniqueness
Merge pull request #170 from dobbymoodge/BZ1028572

<oo-admin-check-sources> Bug 1028572 - uniquify flatten results
<check-sources> Bug 1028612, fix excludes list building logic, RHN code
https://bugzilla.redhat.com/show_bug.cgi?id=1028612

List `need_exclude` in `set_excludes` wasn't being built properly, it
failed to filter by repos which already had excludes set. Added
`_excludes_needed` helper function to build this list.

`set_save_repo_attr` in `OpenShiftCheckSources` didn't handle writing
configs from iterables for RHN correctly. Added simple logic to munge
`value` variable if it's iterable

Also included several spelling, formatting and minor refactors from
code review with Miciah.
Merge pull request #173 from dobbymoodge/BZ1028612

<check-sources> Bug 1028612, fix excludes list building logic, RHN code
<check-sources> Bug 1028941 - Added 1.2 repos to beta2.ini
https://bugzilla.redhat.com/show_bug.cgi?id=1028941

The 1.2 repo data was missing from beta2.ini, so version conflicts
weren't being detected.

Long term fix for this is to refactor the version guessing and add the
2.0beta channels to the ini file with an unique version

Added fix RHEL for repos priorities if they are higher than OSE repos
or >= 99
Merge pull request #174 from dobbymoodge/BZ1028941

<check-sources> Bug 1028941 - Added 1.2 repos to beta2.ini
<yum-validator> Rename assets from *check-sources to *yum-validator

This set of changes prepares the code base for the next step, which is
reorganization for packaging. Changes include:

* `oo-admin-check-sources.py` is renamed to `oo_admin_yum_validator.py`
    * This will eventually be called from a wrapper script -
      `/usr/sbin/oo-admin-yum-validator` - to maintain consistency of
      naming with other `oo-admin-*` scripts
* Towards implementing a wrapper script, the main program logic for
  `oo_admin_yum_validator.py` is now in the module function
  `validate_yum`
* Class `OpenShiftAdminCheckSources` is converted to a new-style class
  named `OpenShiftYumValidator`
* Class `OpenShiftCheckSources` is converted to a new-style class
  named `CheckSources`
add symlinks to keep old instructions from breaking
Merge pull request #175 from dobbymoodge/yum-validator

<yum-validator> Rename assets from *check-sources to *yum-validator
<oo_admin_yum_validator.py> Bug 1028941, disable repos with conflicting subscriptions
https://bugzilla.redhat.com/show_bug.cgi?id=1028941

modified `check_version_conflict` to use a list comprehension instead
of `filter` to find conflicts, added logic to include repos with
conflicting subscription types in conflict calculation.
Merge pull request #176 from dobbymoodge/BZ1028941

<oo_admin_yum_validator.py> Bug 1028941, disable repos with conflicting subscriptions
<yum-validator> Rejigger scripts and conf files for packaging

Created `yumvalidator` package under `yum-validator` app directory

Created `yum-validator/etc` directory to hold config data

Added `RepoDBError` for signaling problems instantiating a `RepoDB`

Added code to catch `RepoDBError` during `OpenShiftYumValidator`
instantiation and bail, since no repo data means no worky

Moved default repository data from `yumvalidator/repo_db.py` to `etc/repos.ini`

Updated `repo_db.py` to check `/etc/yum-validator/repos.ini` and
`./etc/repos.ini` for default repository data, and raise `RepoDBError`
if file can't be found or loaded.

Updated modules with new `yumvalidator` package references

Added some more missing docstrings

Added symlink from `yum-validator/beta2.ini` to `yum-validator/etc/beta2.ini` to prevent breaking https://access.redhat.com/site/articles/531473
Merge pull request #177 from dobbymoodge/yum-validator

<yum-validator> Rejigger scripts and conf files for packaging
<oo-admin-yum-validator> Bug 1031081, Replace y-c-m advice with "by hand" advice
https://bugzilla.redhat.com/show_bug.cgi?id=1031081

Replaced `yum-config-manager` dependent advice for RHSM with by-hand
instructions, since the `--setopt` argument in `yum-config-manager`
doesn't work with dotted repoids. The `--enable` and `--disable` args
still work for dotted repoids, so that advice remains for the
plain-old-yum case
Merge pull request #181 from dobbymoodge/BZ1031081

<oo-admin-yum-validator> Bug 1031081, Replace y-c-m advice with "by hand" advice
<oo-admin-yum-validator> Bug 1028892, Add warning for --report-all when yum-plugin-priorities missing
https://bugzilla.redhat.com/show_bug.cgi?id=1028892

`--report-all` cannot provide accurate repo priority information when
`yum-plugin-priorities` isn't installed. This commit adds a
high-visibility warning to this effect.