Initial implementation of bem with pinned boundary values
Rearrange bem handler class to allow choice of implementation

* Introduce pure virtual base

* Revert BoundaryElementHandler to old behaviour

* Add PinnedBoundaryElementHandler to handle pinned case

* Modify factory to allow dynamic selection of which one to use

* Set all hlib tests to use -phi1-singularity-method pin_bulk which uses
  the old bem handler.
Rearrange code and improve comments
In bem handlers remove some redundant and non-existant functions
In run_driver(...) make generated run_script executable
Fix bug in bem handler

Multiple copies of some variables were left over from conversion to
virtual base class.
Add generation and factory code for cylindrical meshes