Use BigDecimal instead of Float.

Store and compute rates in BigDecimal instead of Float.

Ruby 2.1 users should probably specify the BigDecimal 1.2.5 gem due to this [Ruby 2.1 bug](https://bugs.ruby-lang.org/issues/9316). Or perhaps it should be required in this gemspec?