Fixed topology to use undirected graphs
Added more fine-grained timing
Properly functorized speed test

- Collected shortest path algorithm and all-pairs wrapper into a single functor
- Added modules for cached imperative and persistent versions
- Removed uncached versions