Added caching protocol

The caching protocol now allows caching on a per object basis as
opposed on the call to fressian writer