Improve applyErrata algorithm to apply only relevant erratas. Testcase included.

applyErrata applies all erratas to all systems, which makes SSM not very
useful.

There is already a check in the wrapper applyErrataHelper class, but only
complains. This is fine for applying erratas via the API.

Make the applyErrata smart to apply every system the right group of
erratas that are relevant to it. Optionally allow a flag that
can be used from other methods to mimic the "throw" if erratas do not
apply to all systems behavior.

ErrataTestUtils is a group of test methods used in SUSE Manager
CVE audit feature. Most of the methods are relevant to test this
errata scenarios so we are also upstreaming those methods.
checkstyle fixes
wrong log class
hasKeyword and containsKeyword are the same, but one crashes on null