[common.configuration] update set()

In particular: do not assume that value can be passed via << to a
std::ostream.
[common.configuration] add pb_get, a get variant for python bindings
[common.configuration] add std::less specialization

Also for Dune::ParameterTree using flatten() and operator< on the resulting
std::map.
[la.solver] refine options

You can call types() to obtain a vector of supported types and
options(type) to obtain detailed options for any type in types(). If
options() is called without a type, the options of the first type in
types() is returned. It is assumed that types() is sorted in decreasing
quality, e.g. types()[0] is assumed to be the 'best' all purpose solver
type, whatever that means.