Tree.java
TreeRule.java
Tree.java
Add copy constructor to Branch class
Add root branch cache to TreeBuilder to speed up the real-time tree generation
calls so that they don't have to fetch the root for every call.
Renamed TreeBuilder.loadRoot to loadOrInitializeRoot(), made it a static call,
modified it to load or set the cache and return the root branch