Process init on demand

Move SubProcess() internal subprocess initialization to a separate method, and don't execute it at init time. Add a new .start() method, for people wanting to use background processes, such as QEMU instances inside a virt related test.

With this, we honor the user's expectation for the run() method - start a process and wait until it ends. Also, it requires a minimal change in the virt plugin (calling the .start() method in the QEMU SubProcess() call).
Another one, start() returns the PID (self.sp.pid) instead of None. So we can start(), save the pid, terminate the process and see if pid_exists() is False, later. I know that self.sp is exposed (should be?), but why don't to provide an alternative?