use sys.columns to allow accurate joining to other SYS tables
Reworked SQL Server column reflection to be based on the ``sys.columns``
table rather than ``information_schema.columns`` view. By correctly using
the SQL Server ``object_id()`` function as a lead and joining to related
tables on object_id rather than names, this repairs a variety of issues in
SQL Server reflection, including:
* Issue where reflected column comments would not correctly line up
with the columns themselves in the case that the table had been ALTERed
* Correctly targets tables with awkward names such as names with brackets,
when reflecting not just the basic table / columns but also extended
information including IDENTITY, computed columns, comments which
did not work previously
* Correctly targets IDENTITY, computed status from temporary tables
which did not work previously
Fixes: #12654
Change-Id: I3bf3088c3eec8d7d3d2abc9da35f9628ef78d537
(cherry picked from commit
c868afc090dde3ce5beac5cd3d6776567e9cf845)