Add cause to phase-error exception
Add repository multimethod

The multimethod provides an abstraction for adding a repository to a
package manager.
Add :repository to :package-source crate-install

Allow adding well known repositories as a package source.
Fix test target-server
Normalise group setting in etc-default
Add :provider in node-spec

Allow provider specific options under the :provider key in a node-map.
The value should be a map where each key is a provider keyword, and
the value is a map of provider specific options.
Fix create-path-with-template with missing dir

When creating a file with a missing parent directory,
create-path-with-template was hanging.
Allow image-user to return no credentials

When creating nodes, some providers can create nodes that are
authorised with the admin user credentials.  If no credential is
returned by image-user, merge the credentials from the admin user.