Better handling of random seeds in StanModel

Two contributions:

1. **Catch invalid random seeds for StanModel.sampling**: Otherwise, at least on my machine, Stan silently fails and remains stuck without doing any sampling.
2. **Allow for np.random.RandomState objects as random seeds**: np.random.RandomState objects are handy way to incapsulate random state in a deterministic, reproducible way.