add an internal parametric integer linear program solver
This removes the dependence on piplib.
The solver is very similar to the one in piplib.
In particular, as in piplib, the lexicographic solver is
used recursively on the context. This means that the current
solver will run into the same problems the piplib solver runs into
while looking for an integer point in a context that no longer has any.
In the future, we will replace this recursive call by a call
to an incremental solver based on the generalized basis reduction solver.