Implement BayesianMarkovStateModel

Clear PR with squashed history for `BayesianMarkovStateModel`.

- [x] Implement sampler
- [x] set `BayesianMarkovStateModel` API
- [x] Add docs
- [x] Add example
> So why didn't we just store the arrays like this during the MCMC run to begin with?

I'm not sure how to do this. The sampler is implemented as a generator. I'm not sure if that was the greatest decision or not. But given that implementation and the idea that it's actually running multiple chains simultaneously, after `n_steps` it needs needs to `yield` from all the chains simultaneously, which means the samples are going to be interleaved.