ActionFinish on the worker after Action hook run

`HookContext.finalizeAction` is now called by
`HookContext.finalizeContext` after an Action is run.

If the Action has a non-zero return code, or has errors
during its normal course of execution, such as bad
parameters to action-get, the error will be encapsulated
by the `Message` parameter on `HookContext.ActionData`,
and the Hook for the Action will not cause `ModeHookError`.

However, if an error occurs in the `finalizeContext` or
`finalizeAction` methods, then the uniter will enter
`ModeHookError`.