Support OFFSET/FETCH for ordered datasets on Microsoft SQL Server 2012

Microsoft SQL Server 2012 adds native support for offsets, but
support is limited to datasets that have orders, and using it
requires a different limit syntax than TOP.  While it has limitations,
most people using offsets are going to be using them with limits
and orders, so it handles most actual use cases.

This changes Sequel to use the new offset syntax on SQL Server 2012
for ordered queries, instead of emulating offsets with a subquery
using row_number.
Don't use a subselect when using offset for unordered datasets on MSSQL 2012+

This extends the previous commit to not use a subselect even in
the unordered case.  Since Sequel's offset emulation via row number
requires adding an order anyway on MSSQL, this should just eliminate
the subquery.

There is a slight difference, in that because the order is being
specifed in the ORDER BY clause instead of the over clause, we can
just order by the first column instead of having to get the column
names (which can cause problems if aliases are used).  This should
cause no problems in practice, since if the user did not specify
an order, the database is free to return results in an arbitrary
order.
Add an integration test for ordering by column position