Allow delegateTo to delegate to any class that has the required methods

This allows using `delegatesTo` with instances that are not instances of the mocked class, as long as they have methods of the required signatures. This allows the creation of fake objects of classes that contain many unneeded methods (Issue #112).