* Raise an error if a single coder is provided (or if all units were assigned less than 2 coders).
* Raise an error if the output `dtype` is not `np.inexact`.
* Change asserts to `ValueError`s
* Define more specific typing for the level of measurement, the distance metric callable, the NumPy arrays, and dtypes.