Add LinkedDict for nodes, proper mesh disposal

Add a new class, LinkedDict, which is a straightforward linked hashmap.
Use it to store the nodes instead of an array. Further, correctly
dispose of meshes when removing nodes and edges to prevent memory leaks.