Improved SPIP data structures

* Now using the 'Data' data structure for storing the intermediate and final
  shortest paths. This data structure knows about common path and funnel
* The new data structure allows us to draw the actual shortest path