Added the status trend report and API.

- Report supports filtering by date and any one of: sku,
  entitlement name or the management_enabled entitlement
  attribute.
- The database query and general data gathering is performed
  by the ComplianceSnapshotCurator.
- The request is processed by the StatusTrendReport class.
- Date parsing in Report is no longer lenient.
Added support for extended validations to ParameterDescriptor

- Added the ParameterValidator interface
- StatusTrendReport will now ensure the year is between 2000 and 2099 on
  start_date and end_date
- Invalid dates will no longer cause an exception to be thrown back to
  the user.
Added additional date tests and translation wrappers.
Cleaned up and/or removed extraneous code

Added the missing ParameterValidator.java from the last commit as well.
Clamped dates and relaxed year validation

- startDate and endDate will now be set to "today" or "now" if a future
  date is provided.
- Years are now only limited on the low-end to 2000.
Added time zone support to the status trend report

- Report and ParameterDescriptor now support validating and parsing
  time zones.
- The status trend report no longer returns Date objects in its
  result set. Instead, formatted date strings are returned.
Merge pull request #768 from candlepin/crog/status-trend-report

Added the status trend report and API