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.
You could make this expectation stronger:

``` ruby
original_method = instance.method(:results)
allow(instance).to receive(:results).and_wrap_original { |m| value = m }
instance.results
expect(value).to eq(original_method)
```