Add a BundleUtils class which contains some functions for doing
immutable get/set operations on the tree via the use of Xpath-like
paths such as 'describes[0]/identifier' (identifier node of
first 'describes' relation.)
Commonise some path-parsing logic into a couple of helper classes.
More developing of the bundle-munging tools.
Experiment in making descriptions an AccessibleEntity and exposing
them generically via a REST interface. This has a number of
implications, not all of them easy. Firstly, it means that the
identifiers of all descriptions must hithero be globally unique,
which breaks a bunch of tests. More importantly, placing a @Fetch
annotation on the getEntity relationship of the Description has
to know not to fetch the DescribedEntity all the time, only when
the Description is the 'thing' of interest. For this reason I've
added a 'limit' parameter on the @Fetch annotation, so that we can
specify that a relationship should only be fetched if the current
depth is below a certain level. Putting a limit of zero means to
never fetch a relation unless the item that's being serialized is
at depth zero, in other words, the top-level item of the current
subtree.

These changes are not ready for prime time (as if anything else is
yet!) and some tests are still failing due (probably) to identifier
collisions.
Merge branch 'fetch_limits_and_cutoffs' of github.com:mikesname/neo4j-ehri-plugin into fetch_limits_and_cutoffs