NavGraph: Fixed randomly ordered NavGraph nodes
Encountered an issue with randomly ordered outputs from NavGraph following the recent removal of ElementLink. A vector is used to store nodes in a consistent order. Instead of storing NavGraphNode directly, the vector holds a unique_ptr to NavGraphNode to avoid a memory issue noted with the former choice. The use of map guarantees that there is no duplicate of NavGraphNode in the vector.