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.
Maybe a style like this would look better?

```R
with_mock(
  `base::all.equal` = function(x, y, ...) TRUE,
  {
    expect_equal(3, 5),
  }
)
```