Phase 4 of changes from feature/modules_integration

adds test suite
updates manage and testing config
updates readme
I'm a little confused by this (on a couple of fronts). Do I understand correctly that UnitTest.assertRaises calls a given method multiple times? That seems a little odd, but theirs not to reason why.

What I'd be more interested in is why we're running non-deterministic functions in unit tests in the first place. The only place that I can think off offhand where we'd have non-determinism would be in assigning students to tracks. In that case, can't we mock out the random function to make it deterministic?