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 just tried this: `with_mock <- function(..., .code, .env = topenv()) { ... }`

Then it only works when I explicitly use the `.code` parameter:

```
with_mock(
  `base::all.equal` = function(x, y, ...) TRUE,
  .code = {
    expect_equal(3, 5),
  }
)
```

Otherwise, the code is part of `...`, and nothing is assigned to `.code`.

I probably could make it "just work" by using the unnamed parameters of `...` as code to be mocked. This would also permit

```
with_mock(
  `base::all.equal` = function(x, y, ...) TRUE,
  expect_equal(2 * 3, 4),
  expect_equal(3 * 3, 6),
  expect_equal(3 * 3 + 4, 9)
)
```

However, I haven't [captured unevaluated ...](http://adv-r.had.co.nz/Computing-on-the-language.html#capturing-dots) before.

What do you think? Is it ok to import `pryr`?