The [`smithy` spec](https://smithy.io/2.0/spec/constraint-traits.html#range-trait) seems to suggest that `@range` is allowed on `float` and `double` shapes. We should clarify if that is correct and how it should be implemented (e.g. should `range` allow to specify a tolerance threshold for comparisons?).