Remove use of Object#extend from the eager_each plugin

Object#extend clears method caches, so its use should be avoided
if possible.  In eager_each's case, it's fairly easy to avoid
extending with the module at runtime by just checking for the
eager/eager_graph opts instead of hooking into the method calls.
Attempt to use nicer error messages on JDBC connection failures (Fixes #605, #606)

It looks like in some cases the e2 message contains more
accurate information than the e message, so default to using
that.  Also, don't bother to concatenate error messages if
they are the same.
Add spec for limit/offset in a subselect

The current offset emulation with row number does not handle
subselects, so this spec currently fails.
Remove row_number_column addition in the emulated offset code

Instead of having the row number column be selected, and trying
to filter it out in all of the adapters, add a selection around
the subquery so the row number column is not returned at all.

This greatly simplifies the code, fixes any issues with ambiguous
row number columns in nested queries, and should improve processing
speed for all fetches.  The slight negative is that it may
require a query to get the columns for queries with offsets, and
potentially multiple queries if there are subqueries with offsets.
That can be mitigated by using the columns_introspection extension.

This causes issues with the correlated subquery eager limit
strategy on Microsoft SQL Server, but as that supports window
functions, there is no reason to use correlated subqueries there
(and plenty of adapters don't support that strategy).

While here, fix columns to call naked, since the row_proc shouldn't
be called if you are just retrieving the columns.
Update jdbc/sqlserver adapter after removal of row number column handling