Action.context(): context manager that doesn't finish the action

Depends on #39 being merged first.
Fixes #17.