Add a utility function that behaves like executeCommand but uses a pseudo-terminal so that commands will usually output color.
This patch addresses @ddunbar's concerns about a full pipe blocking by using constantly reading from the pipes while the process is still running.
This patch does not address @ddunbar's concerns about using a single read command at the end of the process because the python documentation states that that read will return all the data. (let me know if I'm wrong)