Floyd warshall cost

The old version of `floyd_warshall` used the number of hops as a proxy for cost. These commits introduce a new version that uses the `cost` element of the `Link.t` record instead.

It also adds a `unit_cost` function that returns a copy of a topology with unit costs.

Hence, to recover the old functionality, one can call `floyd_warshall` on `unit_cost t`.