HierarchyLayoutService.findChildren() now returns [] rather than null if there are no children

Formerly the return value had to be null due to some part of the d3 lib expecting that value. I no longer use that part (which was the hierarchy layout mechanism) and thus use the more natural value of []
It is now possible to collapse nodes (still buggy of course)

Problems include:
- If an even number of ancestors on different levels of a given node are collapsed, that node is displayed
- The space released by collapsing nodes is not used for other nodes
- Descendants of nodes that are being uncollapsed fly in from the origin rather than from their ancestor's position