Refactoring the build system

Well, it's more complicated but it's also got more room to grow.  
bin/mfmsim seems to work the same as it did before I started.
bin/mfmtest blows an assertion:
mfmtest: src/p1atom_test.cpp:127: static void P1AtomTest::Test_p1atomAddSB(): Assertion `out == sbond' failed.
and I'm not sure whether that's a change or not..