Move custom rf class outside the combsimp definition

This fixes, or rather, works around, a bizarre caching issue involving classes
defined inside functions.  See the discussion on pull request #1710.
initial attempt
working on
tests pass, refactory in progress
fixed substitution bug and added tests
hash function restored
merged with master
fixes
metric bug fixed, various refactories
inverse metric bug fixed; Kronecker Delta now can have data
tested TensMul.__call__ on contracted tensors
continued fractions functionality enhanced and added to ntheory module
solved code convension errors & error raising functionality changed
global variable removed
modified the function continued_fraction_rational_number(numerator, denominator)
continued_fraction_rational_number function modified. Doctest errors resolved.
add evaluate context manager
Extend use of global_evaluate
Add cacheit decorator back onto AssocOp.__new__
cacheit inspects global variables