Change path-user and path-group to return names
Allow configuration of pallet state directory

The directory used to store md5 and and backup files on the node can
be configured via the :state-root key of the admin user.
User specific upload path for local files
Upload via temporary
Add :state-group option to admin user

When uploading files from localhost, state-group will be used to share
ownership of uploaded files between the admin user and the sudo user.

A chgrp will be done, if the upload files do not have the state-group
group ownership.
Assume paths starting with $ are absolute

When calculating the pallet state path, assume paths starting with $
will expand to absolute paths.
Merge branch 'feature/allow-var-lib-pallet-config' into develop
Fix sudo user in rsync

Ensure the sudo user from the admin-user or action-options is used
when executing rsync.
Make md5 files non-writeable by others
Add a default :status phase to service-phases
Add rsync-to-local action

Adds rsync-to-local and rsync-to-local-directory actions to rsync files
from a target node to the local filesystem.
Add precondition for username as string
Add data to no total ordering exception
Normalise action sudo options

Ensure :no-sudo is false if the action-options specify a :sudo-user.

Addresses #300
Update to clj-ssh 0.5.7
Add file upload protocol
Set the file-uploader from action-options
Add node-state protocols
Allow action-options in environment

Also splits state-root implementation into state-root-checksum and
state-root-backup.
Fix creation of state root and upload dirs