Polyhedral Omega: Solving Linear Diophantine Systems