Add constraints
This MR add constraints to the function spaces of the scalar basis. Each scalar function has a constrain functor that decides which coefficients to constrain and to which values. In the ini file this is controlled with the "constrain.expression" key. Note that time dependent constraints are not allowed.