Adapted heuristics to Max-Bottleneck:

+ In all heuristics (except for restricted MILP, not yet adapted),
  water filling is replaced by bottleneck filling + build solution
  adapted for MB

+ Bottleneck filling is water filling where we stop at the first
  bottleneck, and then run an LP maximizing the total throughput
  over the fixed paths on the residual graph

+ Build solution is just the same, replacing u's with eta and
  y's with b.

+ Solving the LP is just a matter of setting up cplex,
  and then add one constraint for each arc which is used by
  at least one pair

+ problem_mmf.h: get_eta() now returns a modifiable pointer