Got contracts ready to go.

@bsoetaer We should be ready to write contracts now.
Just realized that the solution I proposed wouldn't allow us to easily store state before and after the method is called. Maybe a better solution would be for the block that is passed to the method invariant to mark evaluating_contract to false, run the method, and then mark evaluating_contract back true?