Insert single node:
Walk through all links to find where an extra node can be added in between Src and Dst. Pick a random one, break the link and insert a random insertable ProtoModule. Recompute one limb. Fail if list is empty.
An extra node can be inserted into a link if either of its neighbor has non empty ProtoModule::find_intermediate_proto_modules_to() result. The result is the list of ProtoModules insertable if the link was broken.
Related do-first: #3
Insert single node: Walk through all links to find where an extra node can be added in between Src and Dst. Pick a random one, break the link and insert a random insertable ProtoModule. Recompute one limb. Fail if list is empty. An extra node can be inserted into a link if either of its neighbor has non empty ProtoModule::find_intermediate_proto_modules_to() result. The result is the list of ProtoModules insertable if the link was broken.