New features for paths

Here are some new features to allow people to find the path to root for any given item as well as to determine if one item contains another. With some tests, even. For #84
Can you also add an assertion that tests that root.getPathToRoot() returns a list containing only the root node?