rework how configs are validated and Ardb is initialized

This came about b/c I want the Runner to validate the configs, but
not do a full init (establish any connection).  This is just some
reworks needed to make that happen.

I added a few tests to make sure each part is actually running the
validation.
moved the setting AR's command recorder into the `migrate` command handler

I figure this is the only place it actually needs to be set.
require in the {root}/config/db.rb file if it exists

This is the standard file to add db configuration to and the Ardb
CLI expects it to do the db configuration.
updates from actual pg usage

I actually tested using the CLI on a PG configuration and these are
some tweaks and fixes that were exposed from that.
better error handling in the cli

This improves the error handling in the Runner/CLI.  This makes sure
all errors are output to stderr and it adds special error classes and
handling for cmd-specific errors.

The generate cmd now uses this to error nicely when bad arguments are
given.