Inspired by how asimov handles new pipelines, I thought we should support adding samplers via a plugin interface.
This would allow users to add support without having to edit bilby itself. This has various advantages, including allowing sampler interfaces to change independently of bilby.
An external sampler will provide an entry point, e.g. in a
mysampler = "mysampler.plugins.bilby:MySampler"
The code will then check for these entry points and add them to the
IMPLEMENTED_SAMPLERS dictionary. The user can then call them as they would any other sampler.