Add a table property to indicate a table being cached

While a table is in the process of being cached in memory or offheap,
it is actually inaccessible, because we won't fall back to the base
data. This patch puts a band-aid on that by allowing the user to check
when the caching is complete, and to disallow multiple cache tasks to
execute on the same table at the same time (where the behavior is not
defined).