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.