Teh/linesearch

I cherry-picked improvements on the `teh/constrained` branch (those that didn't involve the speculative interior point method), because I didn't want a merge headache. Then I got rid of Options. Should fix #71, #75. May also address #79, but I haven't looked yet.
Not so much a bug, but that this version is more numerically stable (it does more cancellation early, and hence is less vulnerable to overflow).