Use a timeout for xpcshell

This way we don't get test runs that hang for TOO long. Also, shove the
stdout from both xpcshell and tcpdump to a file instead of a pipe, to
avoid possible deadlocks (which may have been the cause of xpcshell
hanging to begin with!)
Avoid deadlocks in other processes

Since using wait() without read()ing the output from a subprocess.Popen
instance can deadlock, just use communciate() everywhere to avoid said
deadlocks. It's for the best.
Use universal_newlines on windows-specific programs, just in case

This has no effect now, but in the future case, this might be useful to
have, so we may as well have it.
Switch subprocess.Popen to stoneridge.Process

This is an override of subprocess.Popen that provides sensible defaults
for stone ridge programs that want to call subprocesses, namely:
 * stdout is redirected to a pipe by default
 * stderr is redirected to stdout by default
 * universal_newlines (translate '\r' or '\r\n' to '\n') is always on