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
This is not OK. This is just a copy/paste/modify of the logic below... please integrate it properly.

Strong hint: RunHook and RunAction do not deserve to be separate. Break the current context type up, as discussed, so you essentially have a contextfactory and a context; factory.create(hook.Info) returns a context that can be run() directly, and knows how to handle both units and actions. There's no good reason that I can see to mix action information in at this level *at all*.