use new nest-namespace npm
use new match-object npm
vc _merge: drop _m3 on newly created items
vc: use new _merge that skips _m3 on new objects

updated functions:
* _ensureLocalPerspective
* _addAllToDAG
vc _merge: extra tests
vc _merge: return after cb
vs: added determinedRemoteOffset + tests
vc: split up _addAllToDAG into seperate sub-routines + added _ensureAllInDAG

new routines:
_ensureSamePerspective
_ensureM3
_checkAncestry
_ensureOneHead
_ensureVirtualCollection
_checkParentsInVirtualCollection
_mergeNewHeads
_insertIntoSnapshot
_syncLocalHeadsWithCollection
vc: added param checks to new routines
vc: added test for _ensureOneHead
vc: added test to show _ensureLocalPerspective can handle multiple heads

added test to show _ensureOneHead does not fix multiple heads
vc: _branchHeads has now possibility to omit conflicted versions
vc: added routine _markConflict and implemented _ensureOneHead to work with it + test
vc: clarified some function descriptions
vc: added _ensureLocalPerspective2, _markConflicts, changed _ensureAllInDAG

Duplicated _ensureLocalPerspective to return the versions that already exist
so we can continue with the process. Removed extra _ensureOneHead in
_ensureAllInDAG. Also now marking conflicted heads.
vc: added _ensureIntoSnapshot

when a version is processed twice due to a crash, it is only being inserted
once and does not raise an error
vc: Added check to _markConflicts: items should be from same DAG pe
vc: moved _c from _id to _m3
vc: changes concerning marking conflicts

vc: Added tests for _markConflicts
vc: _mergeNewHeads: mark _m3._c in case of merge conflict
vc: _markConflicts: omit _m3._c in case of no conflict
vc: _ensureLocalPerspective2: copied _m3 bugfix from _ensureLocalPerspective