Added a cache test for the set_dependency intelligence.

Basically it makes sure that when an equality operator is available,
it is used.
No need to be *that* specific in the gen_func_type declaration.

It works just as well without specifying rvalue-referenceness.
The Cache can now be generated as a const object.

This did require some mutable members.
New test for the persistence of setting dependencies in the gen func.
A texture is dependent on a Renderer.