Implement and_wrap_original

This probably needs more specs and needs features but this converts `and_call_original` into `and_wrap_original` then uses `and_wrap_original` to implement the old `and_call_original` (thus nicely proving it works!).

Closes #650.
Would be good for this to show that the block receives the method args and a block (if there is one).