Summary
Add `predict` method based on the combine method for `ensemble`.
When ensemble is selected, **Denseclus does not combine** the umaps, instead it fits clusterer for each UMAP.
When predict is called it used `approximate_predict` in HDSCAN to then vote on the cluster assignment.
**Other changes**
* Change default method from 'contrast' to 'intersection'
* Change default distance metric for categoricals to `jaccard` for later rapids integration
* Increase overall test coverage
* `prediction_data=False` for combined UMAPs, `True` for ensemble
* Update examples to reflect changes
v.0.1.2
A few minor tweaks to the library primarily to help with maintenance.
1) Adding Continuous Deployment CD workflow to directly publish to PyPI when merged into main
2) Fixed `__repr__` and `__str__` methods so the don't return the whole fitted dataframe
3) Fixed coverage runs and made tox a single call