use add = TRUE for on.exit
correctly implement checking that all arguments are named
test for mocking non-existing function
support qualified mock names of the form `<package>::<function>`

- mock only functions, even if no package is specified
- .env argument remains in place
- supply tests