Add a feature to LinearOperator to for explicitly the matrix.
Allow derivative checker to handle linear operators
Remodelling of SlackNLP and AugmentedLagrangian.

SlackNLP:

* uses of sLL, sLR, sUU, sUR lists for refering to the
  slack variables corresponding respectively to lower constraints, lower
  part of range constraints, upper constraints, upper part of range
  constraints.
* uses of tLL, tLR, tUU, tUR lists for refering to the
  slack variables corresponding respectively to lower bounds, lower
  part of range bounds, upper bounds, upper part of range
  bounds.
* hprod has been modified to be a n-by-n matrix instead of on-by-on
  matrix.
* is now a NLPModel. If a matrix-free model is needed, a subclass of
  this one can be found in mfnlp.py

AugmentedLagrangian:

* now a real NLPModel
* updated docstring
* bug fix for the stopping criterion. The norm of the gradient of the
  Augmented Lagrangian has to be used instead of the gradient of the
  Lagrangian due to how the update of the penalty parameters is done.
Counters of the number of the Hprod made in BQP

* Use QPModel in TrustBQPModel
* Add prints of number of Hprod in drivers of AUGLAG, SBMIN and BQP.
Driver for BQP
Merge branch 'feature/new_slacknlp' into lancelot-dev