Make ActionResult an Entity

so we can add it to AllWatcher
action-get in jujuc

Hooks can now run the command action-get to retrieve the map of params
passed with the action hook.  In the case of a nil params map, an empty
value will be passed.  Format for the command is as follows:

action-get [--output=<json|yaml>] [key[.inner.value...]]

In the case of a nonexistent key, a nil interface will be returned to
the command Stdout writer, which will display it as an empty string or
null in the case of JSON output.
Corrected copyright date on action-get files
Fixed incorrect comment on action-get.go
Commented action-get recursion algorithm for clarity.
Fleshed out comments for methods exported for action-get.
In action-get_test, added negative tests and tests for fully exercising map recursion
Merge pull request #399 from binary132/actions-get

action-get in jujuc

Hooks can now run the command action-get to retrieve the map of params
passed with the action hook.  In the case of a nil params map, an empty
value will be passed.  Format for the command is as follows:

`action-get [--output=<json|yaml>] [key[.inner.value...]]`

For example,

`action-get --output=json outfile.compression` might output
```json
{"quality":"high","type":{"utility":"bzip2","flags": "--small"}}
```


In the case of a nonexistent key, a nil interface will be returned to
the command Stdout writer, which will display it as an empty string or
null in the case of JSON output.
merge from upstream master
Merge pull request #405 from johnweldon/actionresult-entity

Make ActionResult an Entity

so we can add it to AllWatcher