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.
Add qpid-cpp-server-store to configure script.

Without this, your exchanges do not persist across qpidd server restarts. The
website indicated this was required but this script missed it.
Added additional date tests and translation wrappers.
Removed rules for activation key creation.

Relaxation of activation key rules at register time means the keys can have many more differing pools at create time.
Cleaned up and/or removed extraneous code

Added the missing ParameterValidator.java from the last commit as well.
Handle strict Katello permissions on password files.

Non-development Katello deployments have strict permissions on the
password files, so we need a sudo to read them.
Correct DER vs PEM mix-up.
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.
Add a toString for gutterball event logging.
Allow gutterball message listener to throw exceptions.

An exception encountered here will cause the message to go back onto the queue
and remain there. It will be retried periodically (apparently whenever we
restart the service and rejoin the bus) until it is successful, as we do not
set a time-to-live or expiration.
Allow AMQP bus publisher to re-try failed delivery to bus.

Catching all exceptions here results in the message being acknowledged in
ListenerWrapper, despite not actually delivering the message as we intended.

Instead we allow this method to throw exceptions if something went wrong
delivering to the message bus. The message is then not acknowledged and remains
in the hornetq queue and will be retried.
Major fixes for reliable hornetq message delivery.

Enable durable hornetq queues to store the journal on disk. Previously we were
only in memory so any events that were pending (usually failed and were waiting
to be retried) would be lost.

Set the message ack batch size to 0 to have hornetq immediately acknowledge
every message with the server. Waiting for a batch limit to be reached can
cause duplicate messages if the server goes down and there were acks waiting to
be sent, resulting in those messages being retried on next restart even though
they went out successfully.
Minor logging improvements for HornetqContextListener.
Improved error handling in ListenerWrapper.

Let errors bubble up so events will remain in hornetq to be retried.
Add a /admin/hornetq_journal API call.

Will return an XML export of the current contents of the hornetq journal.
Useful to see if messages are failing to be delivered to the QPID bus.

Super-admin only.
Logging touchups.
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.
1150562: Fixed exception in CP when re-registering a pool/product to activation keys

- CP will no longer throw an exception when a client attempts to add a pool
  or product to an activation key multiple times. Instead, a proper error
  message is returned to the client.
Merge branch 'master' into dgoodwin/event-delivery