Encoding Linear Constraints into SAT