Phoenix 180

First revision for review.  There are some open points here.  Still no test case added to consume the stats.  Will do the performance test once the system is available with me.
One other caveat: since it's quite possible that the table won't change (i.e. won't have any columns or indexes added/removed) so will remain in the cache too long, we should modify the cache for a max TTL for a cache entry. This can be based on this update frequency for stats. That way, a table, regardless of if it's been changed, will age out of the cache and be re-loaded along with any new stats.