Bypass data tree generation on empty merge

A merge operation may end up not introducing any child nodes. Current
code forces a mutable/immutable cycle. This may end up copying maps or
creating a TrieMap snapshot -- which is not then modified and directly
reused.

This introduces a simple check and a shortcut, which just creates a new
metadata node.

Change-Id: I3fe4d07a139986d473a6bf55a2b40ff4350bd699
Signed-off-by: Robert Varga <rovarga@cisco.com>
Merge "Bypass data tree generation on empty merge"