Better Merger-API.

TODO: define semantics.

Possibly we need MergeResult to be able to distinguish three cases:
1. Found
2. Created
3. Updated (a node was found with some matching labels/properties, and
   nothing matching was found for others, so the found one was updated
   to satisfy all)
For the Updated case we might want to have the MergeResult contain info
on what was changed about the node (this could be included in the
Created case as well, to make the API simpler).

It is also possible that we want to READ lock the node in the Found case
(in the Created and Updated cases it is already WRITE locked).