Refactor path finding algorithms into planner submodule
Add graph index
Planners are responsible for caching, not explorers.

Fixed the memory leak in `Explorer` (not to say that the demo app doesn't leak, I haven't looked).
When promises resolve, `data.path[0]` is `data.current` (was the node after `data.current`).
Fix dynamic mode in the demo
Fix bug where explorers using A* might step too far
Pass a clone of the graph when a path calculation resolves.