Got new recursion method working, and test_Graphs.py runs
Added caching for values and grads
Updated subclasses of Differentiable to new interface.
Allowed for repeated arguments in Differentiable constructor. All tests now passing.
Added cache for shape method