Basic unit-test infrastructure

It's not yet executable or even compilable, but its a start.