Added cl-postgres integration.

In the same vein as the cl-postgres+local-time system this adds a new
system, cl-postgres+local-time-duration and exports a
set-local-time-duration-cl-postgres-reader funtion which install a
reader converting postgres intervals to local-time-duration instances.
The method on cl-postgres:to-sql-string is always defined.
Make sure output generated in the print-object method always goes to the right stream.

There was an implicit reliance on being able to pass nil as a stream and
have the string output simply be returned; in the case of print this is
not true. Also a duration with non-zero nsecs should not be considered
as an empty duration. Made stream argument to human-readable-duration
required.
Call a duration of length 0 (which does occur in practice) a 0 length
duration instead of an 'empty duration.'

the reasoning being that if someone has explicitly called (duration :sec
0) we don't want to hide that information
Implement parsing of ISO8601 duration strings.

Handles almost all of the ISO8601 syntax (see docstring and parser for
details). Adds dependency on esrap.
Move iso8601 parser into its own file.
Export ltd::parse-iso8601-duration
Make human-readable-duration handle its (once again optional) stream argument with the same semantics as the stream argument to cl:format.
Add parse-iso8601-duration to documentation.
Merge pull request #1 from segv/cl_postgres_integration

cl-postgres integration
Merge pull request #2 from segv/parse_iso8601_duration

Parse iso8601 duration strings
Make (cl-postgres:to-sql-string duration) not return a second value so s-sql won't try to escape the returned string.

Also change the code to generate the sql interval expression to be a bit
easier to read.