OAK-1768: DocumentNodeBuilder.setChildNode() runs OOM with large tree

Work in progress. remove() and setChildNode() are now applied recursively and leverage the MongoMK branch mechanism.

git-svn-id: https://svn.apache.org/repos/asf/jackrabbit/oak/trunk@1623827 13f79535-47bb-0310-9956-ffa450edef68