Improved test framework

Now runs all tests before printing errors. Should be more
informative, and useful for trouble shooting. Modeled after
SymPy's test framework.