Add support to BigDecimal

This adds support to BigDecimal to this gem. I liked a lot this gem, although I believe that support to BigDecimal values are very important, specially knowing about floating point arithmetic problems (accuracy).

Please let me know if you think this is important for this gem, if it is, also if I need to fix something with this PR, like version (I was definitely not sure about this part).
The reason we do this, is because if we `BigDecimal.new("yada yada")` it results in a zero valued BigDecimal, same as `BigDecimal.new("0.0")`. Casting first to Float, to ensure it's a valid Decimal value, forces it to raise `ArgumentError`, if it does not raise, we cast it correctly to BigDecimal.