MSP: Replace shared_ptr usage by standard pointers
MSP: Remove path copy constructor
MSP: Adapt to new Path::step() form
MSP: Deep-copy shortest paths results
MSP: Use the pheet memory manager for paths

Note that we need to actually finish execution before returning the
shortest paths.
Revert "MSP: Replace shared_ptr usage by standard pointers"

This reverts commit 7312634ee202b9089af4e871d5b685701e6bc74f.
REBASEME: Remaining changes to revert back from shared_ptr
MSP: Use custom deleter for path pointers

The deleter does not call delete, but instead marks the path as unused.
The memory manager can then pick it up and reuse it.

Again, there's a tricky part in execution - we need to make sure that
the memory manager destructor is called *after* our data sets are torn
down.