Add support for postgres interval type as Period

Internally postgres stores (months, days, seconds), for which it may make sense
to use Duration instead.  Unfortunately, it externally presents an interface
that looks more like Period, so this approach makes parsing easier.
Add support for simple negative HMS intervals