For classes that use numerical tolerances, we should enable: 1. Tolerances by type 2. Combined absolute and relative tolerances as in [numpy.isclose](https://numpy.org/doc/stable/reference/generated/numpy.isclose.html). It may make sense to define a `Tolerance` object as in [relentless.optimize.criteria](https://github.com/mphowardlab/relentless/blob/02da640a9b7622762540aeb49bc0bd8d3b333edb/relentless/optimize/criteria.py#L105).