Handle BigDecimal in Locale#localize

Without this, NUMERIC or DECIMAL values coming from SQL through Sequel are incorrectly formatted:

```
  1) R18n::Locale should format float in local traditions
     Failure/Error: @en.localize(BigDecimal.new("-12345.67")).should == "−12,345.67"
       expected: "−12,345.67"
            got: "−12,345.1234567E5" (using ==)
     # ./r18n-core/spec/locale_spec.rb:77
```

I ran the specs under 1.9.3 and 1.8.7. 1.8.7 has an error if I use my native timezone, but when specifying Etc/UTC, the spec are green.