Implement range type

Range types were added to base postgres in 9.2

Separate instances for different kinds of elements are required because of range syntax. Values can be quoted in double quotes
but not in single quotes. Thus double, float, various date and time ToField instances can't be used.

I'm not sure about code organization, and willing to change it if needed. Where to put PGRange type? Should it be exported by default?
Why Arrays module exports internal things? Should I do the same?

So, I'm willing to clean up this if needed