Got contracts ready to go.

@bsoetaer We should be ready to write contracts now.
This causes no contracts to be evaluated the entire time the function is being run. Might be better to have method invariants be defined in a similar way to class invariants and do the evaluate_contract(method_invariant) then the method itself and then the method_invariant again.