Check in latest working state from sellout. Also provide a functional interface.

* move the high-level logic to a new function `compute-linear-program'.
* provide a compatibility macro `make-linear-program' on top of that.