SolverState::getParameter throws an exception if the key is not found.
Merge pull request #39 from bchretien/master

Add missing includes.
Merge pull request #40 from francois-keith/master

SolverState::getParameter throws an exception if the key is not found.
Allow SolverState to be modified in the callback.

Thus, one could for example decide to stop the optimization process
by analyzing data in the callback and updating an extra parameter
in SolverState that is then processed by the solver.