Merge tag 'pallet-0.8.0-beta.5' into develop

pallet-0.8.0-beta.5
Updated version for next release cycle
Fix remote-directory with :local source
Add rsync integration test
Fix as-action

as-action was not providing a state monad return value.  It now returns the
value of it's body and the input session as the monadic return value.
Fix add-service task for arity two and three
Refactor script-builder to use script fns

Refactors the script-builder code to avoid any hard coded paths, leaving it open
to customisation via script functions.  Allows possible customisation for systems
with sudo, env, etc in unusual places.
Make prolog extensible using script function
Allow verification of files before installation

Adds a :verify option to remote-file, that can run an arbitrary program on the file
on the node before it is installed.  If the verify program returns non-zero, the
remote-file fails.
Add wait-for-file action

Allows waiting on the creation or removal of a file.  Also adds a wait-while script
generator in p.script.lib.
Allow fragment in plan-when test expressions
Set log levels above TRACE
Create a service supervision abstraction

Create an abstraction that will easily allow crates to support running under a
variety of service supervisors.  Provides a function to test supervisor
implementations.
Add deep-merge to pallet.utils
Add :release to package-source doc string
Fix zero arity nodes-in-group
Add explain-phase

Adds pallet.repl/explain-phase which can be used to see the action plan
resulting from the execution of a phase from a server-spec (or group-spec).
Ensure :package-source install updates packages

When using the :package-source install method, ensure that the package-update
occurs before the package install if it is required.
Correct log text in executors
Update to pallet-fsmop 0.2.6-SNAPSHOT