[maint] documentation test refactor hacking

This adds much documentation and a fair bit of test coverage to the DSL. It reorganizes the DSL files to be a little more coherent and should aid in including them in other projects. The changeset is not nearly as scary as it seems, I just could not get git to consider my moved files 'renamed' even when using `git mv`.