Refactor external sampler handling
This is the second MR building on !199 (closed) This changes some implementation details of the external samplers:
- I got rid of the redundant self.external_sampler attribute
- All samplers now have a static dictionary with default kwargs for the sampler
- These dicts contain all possible kwargs
- The previously obsolete
_verify_kwargs_against_external_sampler_function
now is called_verify_kwargs_against_default_kwargs
and checks against our dict of kwargs - Each sampler now has an
__init__
method, which does some custom stuff in some cases