Implemented a generic way to cache alternate values from your Value objects

This way you can make the output of your callbacks cached, which is probably
smart in case of heavy database operations.