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.
Hmmm. It feels like there a little too much scope for things to go wrong here.

I just thought of another problem: right now, only full ids are being passed to ActionResults(). What if a caller looks up "foo#a#1"? They could also get back "foo#a#10", "foo#a#19" "foo#a#1000" right? That sounds problematic. 

More thought required. Maybe there needs to be a ActionResultsById and a ActionResultsByPrefix?