Non-negative least squares

Added some non-negative least squares solvers.

NOTE: this PR is rebased to PR #301. Only the last commit is new.