Add log table cleanup support to remove older entries from the t<n>_log tables.
This avoids infinitely growing log tables.

- you can configure how long to sleep after every table cleanup.  This is a simple
  way to pace the cleanup a bit.

- you can configure how often you want to cleanup each log table, and also how much history
  to keep when you do.  This means the max history for a given table will be the sum of those
  two values.

- add support to undo/redo an arbitrary number of db migrations, instead of just one.  This
  was necessary for sane testing and also so we can undo an arbitrary number of migrations
  in production if we need to as part of a rollback.

- move the update-dataset-log trigger into its own migration file that gets run on change so that
  we can sanely track it in git and view diffs, etc.  This unfortunately means if you want to rollback
  to a previous schema, you need to undo the migrations, and then redo them using the version you are
  rolling back to.  We need some more work to support the notion of versions instead of just individual
  migrations.

- added an index to newly created audit tables for more efficient querying.  At this point, I don't
  think it is worth trying to migrate old ones, they are small enough tables.

Reviewed-by: Robert J. Macomber <robert.macomber@socrata.com>