implement format-iso8601-duration and decode-duration

the cl-postgres:to-sql-string method just returns the iso8601 formatting of the duration (simpler and faster than trying to use postgresql's human-ish format); moved all the formatting code to format.lisp; made both human-readable-duration and format-iso8601-duration have the same 'nil/t/stream' semantics as cl:format;