Multiple improvements

Improved placement precision in the legalizer
Both lower and upper bound placements can now be chosen when calculating the weights in the solver
Added geometric min-cut as well as a few improvements