The class that implements this interface provides for dynamic
computation of page key and the page itself based on the
input object. It should be used in situations where
using the object class as a static key is not enough
i.e. different pages may need to be loaded for objects
of the same type depending on their state.
Returns the page key for the provided object. The assumption is
that the provider knows about various object types and
is in position to cast the object into a type and call methods
on it to determine the matching page key.