Update pea to use unittest 2

I have updated some of the code to make use of the `unittest2` module which will allow the python 2.6 series to make use of this code and get rich error messages upon test failure.  I have also cleaned up the code base a bit and fixed the issue of global step functions persisting throughout the entire test suite.  Now the steps are reset upon setting up each `TestCase` by defining the `setUpClass` method provided by `unittest2`.