Port PQN from phiweave to Breeze

Thanks to Jeremy Jancsary from phiweave, we have a working implementation of PQN.
There are simple tests that show that it is able to optimize unprojected/unconstrained and projected/constrained problems.
It would be good to make more stuff immutable and merge functionality with the existing LBFGS implementation.