Fix type casting to Decimal from Float with large precision

When I define large precision column at RDBMS,
I assign float value, raises ArgumentError (precision too large).

Cause of this probrem:
- `precision` is derived from database column definition.
- If `precision` is larger than `Float::DIG + 1`, `BigDecimal.new` raises ArgumentError

I think it is inconvenient.

this commit fixes it.
If BigDecimal constructor is given Float value, constructor requires precision as argument,
this spec is not documented by Ruby reference manual (English Version).
it is only documented by Japanese version.

http://docs.ruby-lang.org/ja/2.1.0/method/BigDecimal/s/new.html

Ruby v2.1.2 Sample
```ruby
require 'bigdecimal'
BigDecimal(1.0)
# => ArgumentError: can't omit precision for a Float.
```