Properly check if object exists in GetNodeWithParents

In GetNodeWith Parents, check whether all objects we requested were
found in the database.
Distinguish between unsave mergeable and normal objects

To ensure that objects never cause an runtime panic because of
uninitialized fields, we have to initialize all of them, every time.
On the other hand, when fields can not be nil, the merge algorithm does
not work anymore, therefore we need unsave objects.
Begin a benchmark and test tool

Begin with a small benchmark and test tool.
Initially only comes with a small test suite that covers only core
functionality. Fixes #6