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.
Are you changing the whole function API? If not, aren't `rosenbrock_gradient!` and `rosenbrock_and_gradient!` distinct since one generates function values along the way?