Add support for postgres interval type as Period

Internally postgres stores (months, days, seconds), for which it may make sense to use Duration instead.  However, it externally presents an interface that looks more like Period, so this approach makes parsing easier, and allows the user to then convert to Durations as they see fit.  If the binary interface is used eventually, this decision perhaps should be revisited.  Duration is supported on encode.  The lack of sub-millisecond precision is unfortunate, but issue #25 covers that.  Some negative values are not supported correctly in some formats due to incompatibilities in the joda Period parser.