Treat the empty keyword as :\|\|
Fix typo in docs
Swap loop directives to appease ECL
Apparently, ECL doesn't like (safety 0). Set it to 1 there.
Fix leap year off-by-one bug in date arithmetic

Closes #12
Add SCHEMA-NAME argument to TABLE-DESCRIPTION

The SCHEMA-NAME argument can be used to restrict the columns that are
returned by the TABLE-DESCRIPTION to a certain schema.  By default,
columns from all schemata are returned.
Documentation update for TABLE-DESCRIPTION change.
Simplify outputted query in table-description
added ELSE clause to CASE
Mentioned :ELSE clause in the documentation of the CASE statement.
Support USING clause in JOIN
Mentioned :using in the documentation.
added upsert-dao method

save-dao seems to pollute Postgres logs with duplicate key errors.  A
simpler method (which works both in and out a transactions) is to update
first, and if there are unbound slots or no rows were updated then insert.

Both save-dao and save-dao/transaction could now just call upsert-dao.

Named from http://en.wikipedia.org/wiki/Upsert
add defgeneric for upsert-dao and update documentation
Notification support from Zach Beane with enhancements
documentation updates for notifications
Add very simple test for notifications

Issue #19
Add :unlisten SQL op
Insert WITH-STANDARD-IO-SYNTAX between INTERN and FORMAT.

In general, (intern (format "~a..." 'sym ...)) is incorrect because
FORMAT writes symbols according to *print-case*, which may differ from
the case of symbol names (uppercase in the customary readtable).
When *PRINT-CASE* is :DOWNCASE, lower case symbols such as |sym| get
interned.
return (values object is-new) from upsert-dao

is-new specifies whether the object was inserted (T) or updated (NIL)