A lot of updates because of changes in my Util project (replacing my own multimap implementations with google guavas MultiMap) and the tree printer and tree node classes