Clean up directories and file names

* move helpers and tools into subdirectories to keep the main directories clean
* rename test to spec. We do BDD instead of TDD. Better testing is a nice side effect of the act of thinking about and writing down the specifications of software explicitly, and automatically and continuously verifying that the software conforms to those specifications. We already use BDD style test "describe", "it" etc, so the file names should reflect that.