Change CacheProxy methods to take instance on call

Previously the func_self property was set the first time an instance
accessed the proxy, however this caused the bug since it is shared across
all instances. This approach resolves the issue by keeping the CacheProxy
method-centric and requires the instance to be passed as an argument to
to operate on the cache value for the instance.

Although this solution is a tad verbose now that the instance has to be
passed in to the proxy's methods, this is not public API so users will
not be affected by this change.

Fix #136
Re-enable the DATA_CACHE_ENABLED by default