Illustrate bug with current ancestor approach
Candidate fix for #258.
Add a benchmark for finding the original method early.
Refactor to improve perf.

- Don't get the original method handle for a test double
  (it doesn't have an original method as its not a partial mock).
- Leverage InstanceMethodStasher; since it has to stash the method
  anyway, it can store it so we don't have to waste effort getting
  it.
- Delay getting the original_method until the last possible moment:
  right before we redefine it with a new definition.

As a side benefit, this change makes it so that we no longer
"leak" odd obfuscated aliased methods onto partial mock objects.
This is a good thing.

I ran benchmarks of this commits vs the prior (unoptimized fix)
vs what we originally had in master using this shell command:

time (for i in {1..20}; do bin/rspec -fp --order default; done)

Here are the totals:

- this commit: 39.070 seconds
- prior unoptimized fix (c864e0a530add6638e404b84d1608652f3882060): 39.936
- master (80d80d919434e6fe0425b3fa5edab49fe28ea9a9): 37.783