drift diffusion works with the 2d nin diode example
implemented contact model approach and revisited initial guesses

the PDE set classes can now set default contact models and initial guesses via:
  set_initial_guess(viennamini::id::potential(), new viennamini::builtin_potential());
  set_contact_model(viennamini::id::potential(), new viennamini::ohmic_contact());

DD 2d nin diode works, laplace does not, reason unknown atm.
needs debugging ..