Doc and log
Moved getTree to DartCodeChild (also added cache)

It was a little stupid that all places where we call _getTree() was with
_getTree(this).

Also added cache so we save the return value from _getTree and use it if
_getTree is called again (it is not possible to change dependencies on
DartCodeChild objects so no risk here).