MSP: Display perf counter values

We have to print headers within run_test() because we need to access the
current performance counter type.
MSP: Fall back to using vector<> as weight container

This is the path of least resistance. Our current code uses vectors, and
this way we also avoid an additional template parameter for all
algorithm classes (specifying the weight dimension).
MSP: Add the Strategy test case to our suite
MSP: Use a lock guard in LockedSet
MSP: Pass a Pareto set to our tasks
MSP: Pass around PathPtrs instead of Nodes

The algorithms need a reference to the entire path (or at least the node
+ current weights) instead of just the current node.
MSP: Generate candidates
MSP: TODO notes
MSP: Pass path vectors by reference
MSP: simplify code

Code now better matches documentation
MSP: Pareto set returns set of inserted elements
MSP: Spawn new tasks for non-dominated paths
MSP: Mark the graph and source node const
MSP: Add a class mapping pareto sets to graph nodes
MSP: Access pareto sets via SetMapper

Pareto sets are node local. Only paths to the same node
should be added to a pareto set.
MSP: Make Node::out_edges() thread-safe

Unfortunately, cgraph is not thread-safe. In particular, out_edges() was
causing segfaults through parallel use.
MSP: Abstract class needs virtual dtor
MSP: const after type
MSP: Init SetMapper with a graph pointer

It's more natural in this case, because graphs are passed as pointers
everywhere.
MSP: Mark SetMapper dtor virtual just to be safe