Ckozak/reasons class

Separated out reasons code.  More efficient testing.
Fixed duplicate reason output, fixed reasons attached to installed fully compliant products.