Support infinity in PostgreSQL date columns

This adds support for the special input string values `infinity` and `-infinity` stored in PostgreSQL date columns.

When reading from the database the PostgreSQL adapter now returns `Float::INFINITY` when the stored value equals `infinity` and `-Float::INFINITY` when it equals `-infinity`.

Until now Rails only had support for Infinity in `float` and `datetime` columns. We need this since we have start and end dates in our project. The end date can be infinity.

Please let me know if this change is okay or if I should add something. I tried to use the same code as in `OID::DateTime`.
The check is necessary because `cast_value` might receive `Float::INFINITY`, in which cause the case statement will raise an exception. See this example:

```ruby
def cast_value(value)
  case value
  when 'infinity' then Float::INFINITY
  when '-infinity' then -Float::INFINITY
  else
    super
  end
end

puts cast_value('infinity')              # => Infinity
puts cast_value(Float::INFINITY)         # raises FloatDomainError
```