SI-8970  hashCode of BigDecimal and Double do not match

Switched isValidDouble (binary equivalence) to isDecimalDouble (decimal expansion equivalence), as people generally do not care about the slew of extra decimal digits off the end of the binary approximation to a decimal fraction (decimal equivalence is the standard now).

Added minimal unit test to verify behavior.
Merge pull request #4141 from Ichoran/issue/8970

SI-8970  hashCode of BigDecimal and Double do not match