Modelling Integer Programming with Logic: Language and Implementation