Initial commit
Add readme
Add DSL to more easily build trees
Detect circular dependencies

There are much more elegant ways to do this than catching a stack
overflow, but this is better than nothing.