Move VersionGraphBase.Lock into it's own file
Cycle detection
Generalize mapping process in order to allow references
Serialization by reference (supporting e.g. cyclic data)