initial commit for retentions_idx table

retentions_idx is a custom index used for query data retentions. This commit
also includes changes to store tenant level data retentions in retentions_idx.
The data retentions are cache in memory at start up.
do not cache tenants

At least for now there is no need to cache all of the tenants. We just need to
cache each tenant's data retention settings.
fix bug for computing ttl on tagged data points

This commit also includes a big reactoring in the tests that verify TTLs. It
removes the Thread.sleep calls which were slowing the tests down considerably.
It also makes the tests more flexible because you can now write the data into
the past in order to simulate an updated TTL. For example, suppose we are using
a TTL of 7 days. If data was written 2 days ago, then the TTL would now be five
days.
store data retention in seconds not hours since C* TTL is specified in seconds
perform necessary data retention writes when creating a metric

When we create a metric where the data retention is specified, we write it to
three places, retentions_idx, metrics_idx, and data tables.
update queries to return data retention
fix compiler error due to minor API change
Merge pull request #87 from rhq-project/data-retention

Add metric level data retention support in core Java API