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.

Closes #163.
I think the implementation would be more natural if you implemented a `set` pattern along the lines of https://github.com/hadley/devtools/blob/master/R/with.r - i.e. the set function should return a value so that you can do

```R
old <- set_mocks(...)
on.exit(set_mocks(old))
```