Streamline connection codepath, fix $ENV{DBI_DSN} regression from d87929a4

Break out _dbi_connect_info to always take into account $ENV{DBI_DSN} on
a case-by-case basis. This allows to centralize handling of "whose driver
is this anyway" and let more exotic configs still function properly.

Additional refactor of _connect since there is no point passing the DSN when
we can grab it from $self (this also fixed ::Replicated's _connect() loop
never actually having worked)
Extra oracle test based on b6900fc0

Grumble - this was such a simple thing to diagnose and it took a month to
see it. The culprit was the (correctly bisected to) cleanup in d87929a4,
which failed to take into account that an empty connect() can still lead
to a healthy $dbh, given system-based authoriozation, and no attributes
being passed in.

For the curious - the difficulty to diagnose was further exacerbated by
the apparent insanity of what was being generated - a (known, existing)
method name was somehow leaking into the generated SQL. In reality when
we failed to determine the driver, we also failed to determine the SQLA
subclass, which in turn made us call a nonexisting method on $sql_maker,
but *surprise* - SQL::Abstract (the granddady of it all) defines an
AUTOLOAD. Khaaaaaaaaaaaaa....