ActionFinish called after Action completion

The worker now calls ActionFinish on state to call home with the results of an Action.

The unit will not be set to an error state unless the API call to ActionFinish fails.  Any other errors generated by the Action will be encapsulated in the results message, which is sent back to state with the final state of the Action (complete or fail.)
It's more about creating a single path of failure.  If we move the skip-run-and-finalize bit up above and short-circuit the return, we have to also check and handle errors from finalizeContext, decide whether to notify hook failed or completed, and commit the hook.  I suppose we could have a bit like:

```go
if actionParamsErr == nil {
    // perform RunAction and handle its errors
    // write unit state, return errors if needed, notify completed or failed
}
    err = finalizeAction( actionParamsErr )
    // do the same as above, but don't write state
}
```

but that seems a lot klugier than this.

The argument can also be made that `ActionFinish` from `finalizeContext` is part of the run of an Action, and if calling it crashes the unit, the unit then crashed in the middle of running an Action, so this is also semantically correct.