Allow root user to be mapped to another user in the host.

This allows containers to be run as root without giving them host-level
root access (assuming no kernel bugs). It also means that containers
running as non-root users are prevented from gaining host root even if
they manage to escalate to root inside the container.

By default all containers are now created with non-host-root
permissions. The 'privileged' flag on creation has been added to
override this behaviour and permit a container's root user to also be
the host root user.

NOTE: This means that users who need to run, for example,
networking scripts within the container must now specify the
'privileged' flag on container creation (rather than just on the run
command).

Also backfill a test for hostname being set to container ID

[#82838560]