ActionFinish called after Action completion

The worker now calls ActionComplete or ActionFailed on state, depending
on the success state of the Action and any errors.

The hook is set to an error state if the Action hook is missing, or if
other errors take place during hook execution.  If the Action hook sets
a fail state, the Hook will not error, rather the Action will fail.

DEPENDS: https://github.com/juju/juju/pull/651
these failures STM to be completely disconnected from the stuff that triggers them. I don't think they're pulling their weight -- can we not just set the results we expect directly in the tests, rather than putting them 1000 lines away?