ActionResult captures the output and state of an action

test new Action.Fail() functionality

Add some tests for Action.Complete()
Updates per review from @mjs
Add ActionResultsForUnit and ActionResultsForAction to better manage specific prefixes for filtering
Add comments to explain structure of Action.Id() and ActionResult.Id()
use errors.Errorf instead of fmt.Errorf
Merge pull request #33 from johnweldon/action_results

*Action Results* in the State
==

An Action can now be `Fail()`'ed or `Complete()`'ed, and the relevant output will be stored in the `actionresults` collection in the juju db in mongo.

The reason, or the output will be written to the `ActionResult`, along with the details of the `Action`.

The prefix of the `ActionResult.Id()` will also encode the `Action.Id()` from which it was generated (which itself encodes the `Unit.globalKey()` that the `Action` was queued for.