isl_*_eliminate: perform integer elimination
The original code would perform the elimination "rationally" by
simply applying Fourier-Motzkin on them. If the input
is an integer set or map, this could drop information on other dimensions.
For example, eliminating the second dimension of
{ [i, j] : i = 2 j }
would result in
{ [i, j] }
while it should result in
{ [i, j] : exists a : i = 2 a }
We now perform an integer elimination (on integer sets and maps).
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>