Return compliance status reasons for Compliance namespace

- StatusReasonGenerator JS object now used to create reasons.
- ComplianceCalculator now returns a coverage JS object:
   covered: true/false if all attributes are covered
   percentage: percentage of attributes covered
   reasons: Any reasons why any of the attributes are not covered.
- Reasons are now provided for partial stacks, partially covered
  entitlements, and non covered installed products.