Move to a more versatile subprocess.popen wrapper.

This wrapper is still mindful of the 64kb limit of subprocess.PIPE and provides handy debug functionality.
It also moves into its own file / class under a new utils directory to reduce the size of ozutil

Various Guest OS classes moved to using that implementation.

Command.run() accepts the command as a python list as a first param, with additional parameters, such as extra ENV items, CWD and a debug function to be used with the track generator. A timeout can be defined for each run, allowing us to be rigid about how long each command runs.

Command.run() returns a Response object with exit (status code), output (stderr and stdout) and command as its properties.

CommandException is the new exception class around it all