Integrate `queue_classic` into razor-server

This brings in the `queue_classic` gem: a satisfactory implementation of
background task queuing using the PostgreSQL database.  While not generally
the ideal choice, QC carefully implements reasonably efficient and correct
locking and notification to reduce the cost.

This has the advantage of being predominantly in-process, and while not as
optimal as a queue that could run correctly without any service, it is only
prone to failure when *all* data-touching operations would fail.

This eliminates a robustness failure point that we would hit using, for
example, a second external process queue solution -- when we had to solve the
challenge of the database being up, but the queue down, or vice-versa.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Move base schema creation down the migration pecking order

This simply bumps the base schema creation from slot 2 to 3, allowing room for
the QC schema, triggers, and functions to be loaded into the database before
we deal with the rest of our schema being created.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Add `queue_classic` migration

This adds the database setup -- and teardown -- from QC to a migration,
allowing it to be run as part of the normal Sequel build and cleanup of
the database.

It is a distinct migration script as the QC code maintains transactionality
internally, and we want to disable Sequel migration transactions for this
script -- but only this script!

Signed-off-by: Daniel Pittman <daniel@rimspace.net>