Updated to support both stubbing and verifying a method.
Updated to resolve problem where stubbing (or verifying) the same method more than once would cause the original method to not be put back correctly when mocking was removed.