Don't try to raise exceptions that don't exist.

Perhaps we want more exception types, but if they don't exist we shouldn't raise them.
Add 'coverage' python module to requirements and make a config file for it.

This is for testing code coverage of the unit tests using 
Ned Batchelder's Coverage.py
See http://nedbatchelder.com/code/coverage/
Add 'make test' target to Makefile for running unit tests.

This uses nosetest, and hopefully discovers all the required modules.
We may want to replace it with a special test.py file for more control,
or running example cases, but this seems to work for now.
Added 'eg1' target to Makefile to run the minimal example.

Copies it to a testing/minimal directory, runs it there, with 
both code coverage and profiling turned on.
Fix silent bug in data/thermo.py

This would only cause a problem in the case of an error,
but it would make the reported exception more confusing.
Remove some "from foo import *" statements.

Hope I haven't missed any required imports!