Handle BigDecimal Ranges

Comparing a BigDecimal to `Float::INFINITY` throws a `FloatDomainError: Infinity` exception in ruby MRI 1.9+ and a `TypeError` on 1.8. This causes the comparisons in `Arel::Predications#in` and `#not_in` to fail when using BigDecimal values, which can often happen when using PostgreSQL and ActiveRecord, as AR casts `numeric` values in PostgreSQL to BigDecimal.
We are not taking care of 
```ruby 
node = @attr.in BigDecimal.new(1)...BigDecimal.new('Infinity')
          compile(node).must_be_like %{
            "users"."id" > 1
          }
```