Ensure deserialization from json keeps numeric values

After Oj 2.10.0, there happens quite often that the float is
deserialized to BigDecimal which is serialized back to string.

    MultiJson.load(MultiJson.dump(
      MultiJson.load(MultiJson.dump(6.903916489999999))))
    # => "6.903916489999999"

Also, other JSON implementations have similar behavior when it takes
BigDecimal. More details here https://github.com/ohler55/oj/pull/59.

As preserving of the float type is not guaranteed, we need to manually
typecast to_f to avoid

   Value (String) '3.00232023232032203232' is not any of: Numeric; NilClass
Merge pull request #127 from iNecas/fix-float-deserialize

Ensure deserialization from json keeps numeric values