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

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