Multiprocessing support for tests
run test_multi.sh

Travis doesn't seem to like the last commit. Oh well...just cherry pick the first two i guess
 Thanks for all this test refactoring. I'll merge the first 2 commits and do a little more profiling on slow tests
