Manually back up functions (fixes GH-4)

The spy returned by Pinkerton::spy should wrap a copy of the original
function or method because it's replaced by a handler that invokes the
spy. Because of this, spyOn( ... )->andCallThrough followed by an
invocation segfaults.

This regression was first introduced in b89fdc1.