* Rename `CategoricalStringObservationModel` to `CategoricalObservationModel`. The old name is now an alias but will be removed in a future release.
* Cleanup documentation and add typing hints.
* Consistently declare encoding (utf-8) in all python files.
* Add more tests to increase coverage (not yet 100%).