Still awfully rough around the edges, but made some updates:
* Generative models now supported (just pass `x` to `model.fit`)
* Models save optimizer state (i.e. you can call `model.fit` once, then if you call it again later, training picks up where it left off)
* Added a multivariate normal parameter (`MultivariateNormalParameter`)
* Updated applications to work with sampling (where `n`>1)
* Started adding PyTorch support (buuuuut dunno how much I'd trust it yet)
* Expanded the examples: robust heteroscedastic regressions, Gaussian mixture models, and normalizing flows, oh my!