Make Action.finish() a public API, allowing explicit finishing of actions.
Ignore more than one call to Action.finish(), otherwise following idiom
would result in multiple finish messages when the context is exited:

with action:
    try:
        doSomething()
    except OneError as e:
        action.finish(e)
    except Exception as e:
        writeTraceback(logger)
        action.finish(e)
Document the new API.