This pretty large commit does a number of inter-dependent things, required to make initial placement great again:
Separate the initial placer from the existing mapper. This is done by udpating all qubit references in the IR by their corresponding mapped real qubit computed by the MIP solver.
Use the new IR in this new inital placement pass.
Rework the code to remove debug logs, which were half-commented and really unpleasant to read.
Move the MIP solving to use a new solver called HiGHS. This is an award-winning solver that is actively maintained, performant, open source and licensed under the MIT license, which allows the removal of the toggles to enable/disable inital placement due to license issues.
Remove GLPK dependency.
Add HiGHS as submodule.
Add doctest as submodule, and add unit tests for the linear solver. To make unit-testing convenient, the implementation class is independent from the IR and only takes the 2q gates count as input.
This pretty large commit does a number of inter-dependent things, required to make initial placement great again: