Merge branch 'release/0.8.0-alpha.8' into develop
Update useful version
Update to latest fsmop and script-exec
Improve error logging
Add pallet.actions/as-action

Allow wrapping of arbitrary clojure code to be run as an action.
Make rsync action take options

Allows passing a map of option flags.  By default rsync is now less verbose,
with no -P flag.
Use a phase-context for named plan-fns

When a name is given to the plan-fn, create a phase-context for it, rather than
a session-context.  The session-pipeline is renamed to session-context.
Improve service-properties doc string
Ensure a session is set when executing

The thread-local *session* wasn't being set when executing an action-plan.
Add targets and target-nodes to pallet.crate

These functions return all nodes being targeted by the converge or lift.
Add trace level logging to pallet.ssh.execute

The trace level logging gives insight into the timing of action executions.
Refactor etc-hosts crate

The host entries are now maintained in the settings, with functions to add
localhost, ipv6-aliases and a named localhost-hostname (using 127.0.1.1). The
aliases for each ip are now stored in a sequence.

The new add-hosts function allows for bulk update of the hosts mapping.

The hosts-for-group and hosts-for role are removed.  Equivalent functionality
can be achieved using pallet.crate/nodes-with-role and the add-hosts function.
Update the user and group action doc strings
Allow :packager specification in a group-spec

This should fix a regression compared with 0.7.x.
Fix has-state-flag? for when node is not taggable
Add arguments to phase functions

Allow functions with arguments as phase functions.  When calling lift, the
arguments to a phase can be passed using a vector.  For example (lift mygroup
:phase [[:configure :full]]) passes a :full argument to the :configure phase
function.
Don't show null as context in log messages

Avoid showing anything as the context when no context is available.  This was
being displayed as 'null'.
Update to latest codox-md
Fix test for with-script-for-node taking a target map
Annotate functions returning a node-value

Add {:pallet/plan-fn true} metadata to each function that returns a node-value.