Add use of `Double`/`Float.compareTo` instead of `==`

The method `compareTo` should always be used in favor of `equals`
on `Double`s or `Float`s as it returns a value consistent with
`equals` for `NaN`.

Also modified test fixtures to test changes and accommodate
changes in testing structure. Added `Float`/`Double` versions
of `Point`/`ColoredPoint`/`FourDColoredPoint`
Add more test coverage for Double and Float compareTo change