Basic Jasmine-style spies

Supports toHaveBeenCalled and toHaveBeenCalledWith matchers, and
exposes calls and arguments for ad-hoc matching. Doesn't yet have
andCallFake, andCallThrough, or anything else that has an effect
other than recording calls.
Added Spy andCallThrough
Added Spy andForwardTo
Added Spy andCallFake, which causes a specified block to be called.
Converted spies to use call message argsEvaluatedIn(call sender)

This is cleaner than building up a list from named arguments, and
it also fixes an issue where trailing nil arguments would be
dropped.
Merge pull request #11 from sgravrock/jasmine-style-spies

Jasmine style spies