Modifications to allow running multithreaded:
This addresses most of what is discussed in #30
This also fixes a crash in a test on clang that was due to a bug in the IO of the Al::Equations object.
@graven, @jcobbled