Add phases-meta, and implement :bootstrap with it

This introduces the :phases-meta key used to add execution metadata to
phases in server-spec and group-spec.

The execute-on-unflagged-metadata and
execute-with-image-credentials-metadata functions can be used to generate
suitable metadata.

The :bootstrap phase is tagged with metadata to make it run with the
image-user, and only on nodes without a :bootstrapped flag.  Converge is
refactored to exploit the metadata on the phase and simplify its
implementation.

Changes the environment-execution-settings and
environment-image-execution-settings signatures in pallet.core.api.