Many changes

- uses anonymous function instead of constructor.
- wraps functions correctly.  They still don't do the check-ins though.
- better commenting
- attaches previous properties to newly infected functions (just on the offhand chance an infected program needs that)
- fixes a bug where infected functions weren't returning correctly.

Signed-off-by: Daniel Shumway <shumway.danny@gmail.com>