ActionComplete / ActionFailed 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/527
I realized we need to use `ActionFinished(results map[string]interface{}, status, message string)` in order for the completion event to get the results map back to state, as requested by @fwereade.  So this will change a bit before landing if we decide to keep the requested spec.  It should not be a major difference though.