New (highly!) experimental features using macros.

These new features are in theory well-contained in the new ``qinfer.experimental`` package, but I don't want to merge this into master until someone else can confirm that I haven't somehow broken ``setup.py`` on systems where optional dependencies are missing. Once that's done, I think there's little risk of having experimental features included, as long as we don't ever import the experimental package from within the main ``qinfer`` package.