Fix matching nil blocks; add tests for matching nil objects and blocks

Trying to verify that a method was invoked with nil passed in for a block argument fails erroneously. This patch fixes that problem. It appears that for blocks that weren't using any() or capture(), a value matcher was being set instead of an object matcher.

I added a test for nil objects just for good measure, even though that was already working.