Work with probability distributions as R6 objects, with flexible parameterizations, properties, decorators, and composite wrappers