Giving each subprocess its own temporary directory to avoid poorly written tests that use the same file name (but the system temp directory) from colliding.
Split ProtoTestResult and GreenTestResult into a result module.  Did the same with the corresponding tests.
Created ProtoTest and ProtoError classes to store just the important information we care about in a easily-accessible and pickle-able way.