cleanup boundary conditions
This MR attempts to simplify the boundary condition interface by providing:
- an abstract interface
- more documentation
- clearer function names
- deduction for some template arguments
The introduction of virtual functions requires additional template arguments Mat, Sol, Rhs
. Those may be removed later with the change to local application of constraints.
Edited by Müller, Felix