Improve applyErrata algorithm to apply only relevant erratas + Testcase

ErrataManager.applyErrata applies all erratas to all systems

Thismakes SSM not very useful. Eg. selecting various systems with different OSs, getting a list of multiple erratas, selecting them all and patch all systems does not really work as expected.

There is already a check in the wrapper applyErrataHelper class, but only
complains. This is fine for applying erratas via the API. We mimic this behavior using a flag.

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 as they were used to build the new ErrataManager testcases.

Some methods are only used by CVE Audit. Are we sure we want them here?