DecimalNode: change .equals()/.hashCode() implementation, test it

Commit f88c50a10bbd2d1dc4ae6d7ca0a4ece68adc00c1 worked around decimal nodes' "1"
and "1.0" not being equal by stripping all decimal zeroes off BigDecimals passed
as an argument -- and made it the default.

However, this spells trouble for users who wish the deserialized representation
to be exact; for instance, 600.00 is converted to 6e+2.

Rework the implementation completely; we now rely on the fact that BigDecimal's
.doubleValue() will return the same value for two nodes which are numerically
equal for computing the hash code, and use .compareTo() in .equals().

Add tests for a randomly selected, pathologically large number.
Merge pull request #249 from fge/2.2

Fix DecimalNode's .equals()/.hashCode(); change the default JsonNodeFactory instance
Initial fix for #251 (will improve for 2.3)
Fix #259
Backport #281 fix
Fix #267 for 2.2.3 as well
Fixed #234 for 2.2.3 as well
add test for #287 for 2.2
Backport #287 fix for 2.2.3
Fix #288 for 2.2.3 as well
Merge a further fix related to #288
Prepare for 2.2.3 release
[maven-release-plugin] prepare release jackson-databind-2.2.3
Change to use familysearch versions of jackson-core and jackson-annotations.
Change package names to something familysearch specific to avoid version conflicts in EMR.