This adds support for mapping named paths. To support this, a couple of changes are necessary:
* The mapping process must be more strict:
Only nodes with having at least the exact primary label are used to hydrate entites.
One of our tests needed a fix. The test should have tested for various constructor
operations on _entities_ but did test DTO projections. These dto projects had
been mapped from custom queries, returning nodes without the label of the original
entity.
Of couse we did check for the primary label before, but the driver type indicator of MAP
is not mutual exclusive. That means a node is map, too.
* The mapping process should not pick the first matching thing to map:
This means that the mapping will fail now if there is more than one structure that would
theoritically fit
The second biggest change here is that the `Neo4jEntityConverter` has become now
stateful. It keeps a cache of seen objects for as long as one query keeps on running.
That means for each interaction, the converter is created fresh (it hadn't been a
bean beforehand).
This allows to handle nodes on a path that are usually seen twice.
The path mapping itself relies on the same mechanism that we introduced for
DATAGRAPH-1429: Working with one aggregate coming back from the database on the top
level. A named path is such an aggregate much like a list.
The path mapping will only populate one main entity along a path, using the possible
other nodes only for filling up relationships.
The imperative and reactive template will return now the _distinct_ list of entities.