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.)
hmm, hasn't this changed? I think the original behaviour was to preserve the original error and logthe consequent error, rather than overwriting the original.

Will be a hassle to test cleanly, which I guess is why nothing failed when it changed -- if you can't figure out a nice way to do it I could live with a comment.