Scanning integer points with lex-inequalities: a finite cutting plane algorithm for integer programming with linear objective