Support env in commands.

Previously, schroot was altered to support preserve_environment.  This
is a flag that is passed to schroot that will allow env variables to be
passed from the caller (or env parameter) through to the schroot.

However, it is perhaps more useful to be able to set the environment
from inside the schroot, using the env parameter. This means we can set
values as appropriate for inside the chroot without messing up the
schroot invocation.

Unfortunately, schroot doesn't have a good method of setting arbitrary
environment variables before calling the command.

Instead, we write the environment variables to a temporary shell script,
that passes control to the actual command we want to call.

As a result the API of the _command function has changed, as we need to
be sure we clean up the temporary file before we return.

Have also split _command_prefix so I can override it in a local project.
That is another story.

Not sure if preserve_environment is required anymore, however keeping it
just in case.