Removed Level of Indirection

Removed a level of indirection between the Invariant and its caching
ability. Now the Invariant within the common namespace is by default
cached. If the user does not want to have a cached Invariant, he or she
should use the base Invariant.