with_mock() function

As discussed in #159. Interface as suggested by @hadley, supports nesting, mocking more than one function, not mocking at all, and returning a value.

Early draft, with tests and a documentation stub. Comments are welcome.

Fixes #159.
I'm not sure this will work - if nothing is named when `mock_qual_names()` will be `NULL`