Set 'SO_REUSEADDR' for the socket bound test on linux. This option is actually used by the SimpleHttpServer, and it is needed because the sockets are left in a time_wait state for a bit after shutdown. Also, make the pid directory if necessary.
Move setup and teardown in to the base class.
Make the setup and teardown more robust - they will try to kill off processes that are left dangling at the end, and so on.
Wait for the http port of the parent to be available (i.e. everything has started up).
Move the starting in to a separate method so that we can adjust parameters later (e.g. not to wait for start, or to fail during init, etc).
At tests for different termination situations for the parent.
Adding a new method that holds on to the GIL for a specified period - essentially 'pausing' the python interpreter for that time. Also added a test for killing of parents.
Add a test where the middle child has frozen up before exit.