remove weird merges in Caching.
Revert "remove weird merges in Caching."

This reverts commit 6703d3ab7b35d41d4e202c84834b63cc0733e18f.
adding Uber::Options.
make better, functional cache tests.
use Uber options everywhere in caching.
use uber.
don't use :instance_method for Uber..Value anymore, it got removed.
use uber's Options and Value everywhere in caching. this breaks old ::cache calls which expect the first block argument to be the cell instance. instead, this is executed in cell instance context.
use uber 0.0.4.
fix deprecation test and add test for cache with block and instance context.