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.