Make #rollback_db_transaction smarter.
Coerce a few tests for 3.1.1.rc2. Includes bcrypt for out tests to run.
Misc changes.
* Create a #configure_connection method that can be overridden. Think "SET TEXTSIZE...".
* Create a #configure_application_name method that can be overridden for unique TinyTDS app names
* Fixed the #finish_statement_handle to cancel the TinyTDS connection if needed.
* Update docs to markdown format.
Fix identity inserts for tables with natural PKs. [Gian Carlo Pace]
Fix SQL Azure conflicts with DBCC useroptions. Use new #user_options_xyz methods. [kazamachi]
Fix readme example.
Fix readme.
Fix doc example.
Update Gemfile to use 0.5.0 of TinyTDS and allow a RAILS_VERSION to be set.
Update test docs with new RAILS_VERSION bundle method.
Distinguish between identity and primary key key columns during schema reflection. Allows us us to only do identity inserts when technically needed.

  * Fixes #139
  * Thanks @chadcf & @joncanady
Prepare for 3.1.3 release.
Do not freeze VERSION string. Fixes #141
Populate the spid attribute on connect and reset it on disconnect for dblib.

This is useful for debugging client connections.
Add methods for sqlserver's productversion, productlevel, edition and include them in inspect.
Add activity_stats method that mimics the SQL Server Activity Monitor.
Pass AR tests by moving DISTINCT to GROUP BY in windowed SQL.

* Tests now passing.
  test_count_eager_with_has_many_and_limit_and_high_offset
  test_eager_with_has_many_and_limit_and_high_offset

* SQL like this:

  SELECT DISTINCT TOP (2) [__rnt].id
  FROM (
    SELECT ROW_NUMBER() OVER (ORDER BY [posts].[id] ASC) AS [__rn], [posts].id
    FROM [posts]
    LEFT OUTER JOIN [authors] ON [authors].[id] = [posts].[author_id]
    LEFT OUTER JOIN [comments] ON [comments].[post_id] = [posts].[id]
    WHERE (authors.name = N'David')
  ) AS [__rnt]
  WHERE [__rnt].[__rn] > (10)

  Now like this:

  SELECT TOP (2) [__rnt].id
  FROM (
    SELECT ROW_NUMBER() OVER (ORDER BY [posts].[id] ASC) AS [__rn], [posts].id
    FROM [posts]
    LEFT OUTER JOIN [authors] ON [authors].[id] = [posts].[author_id]
    LEFT OUTER JOIN [comments] ON [comments].[post_id] = [posts].[id]
    WHERE (authors.name = N'David')
    GROUP BY [posts].id
  ) AS [__rnt]
  WHERE [__rnt].[__rn] > (10)
Handle statements that cannot be retried on a new database connection by not reconnecting.

For example, retrying commit_db_transaction on a new connection would result in:
The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION.: COMMIT TRANSACTION
Accept TEST_FILES env variable as a glob pattern to limit which test(s) are run.
Pass ActiveRecord tests. Made windowed distinct pass all orders to groups.

  * Tests passed
    test_limited_eager_with_multiple_order_columns
    test_limited_eager_with_order

  * Makes SQL like this:

    SELECT TOP (2) [__rnt].id
    FROM (
      SELECT ROW_NUMBER() OVER (ORDER BY UPPER(posts.title) ASC, posts.id ASC) AS [__rn], [posts].id
      FROM [posts]
      LEFT OUTER JOIN [authors] ON [authors].[id] = [posts].[author_id]
      LEFT OUTER JOIN [comments] ON [comments].[post_id] = [posts].[id]
      WHERE (authors.name = 'David')
      GROUP BY [posts].id
    ) AS [__rnt]
    WHERE [__rnt].[__rn] > (1)

    Look like this:

    SELECT TOP (2) [__rnt].id
    FROM (
      SELECT ROW_NUMBER() OVER (ORDER BY UPPER(posts.title) ASC, posts.id ASC) AS [__rn], [posts].id
      FROM [posts]
      LEFT OUTER JOIN [authors] ON [authors].[id] = [posts].[author_id]
      LEFT OUTER JOIN [comments] ON [comments].[post_id] = [posts].[id]
      WHERE (authors.name = 'David')
      GROUP BY UPPER(posts.title), [posts].id
    ) AS [__rnt]
    WHERE [__rnt].[__rn] > (1)