Added new SqlTokenizer class to support parsing of non-trivial SELECT statements. Modified SqlString.Parse() to ignore parameter references in SQL comments.

Conflicts:
	src/NHibernate/SqlCommand/SqlString.cs
NH-2977: Modified loader to fall back to client-side limit/offset behaviour if dialect does not support generation of server side limit/offset SQL for a given (custom) SQL statement.

Conflicts:
	src/NHibernate/Dialect/MsSql2005Dialect.cs
	src/NHibernate/Loader/Collection/CollectionLoader.cs
NH-2977: Added limit SQL generation for SQL Server queries with comments, common table expressions, and stored procedure invocations.

Conflicts:
	src/NHibernate/Dialect/MsSql2000Dialect.cs
	src/NHibernate/Dialect/MsSql2005Dialect.cs
Added MsSql2012Dialect and made MsSql20xxDialect.GetLimitString() implementations more consistent.

Conflicts:
	src/NHibernate/Dialect/MsSql2000Dialect.cs
	src/NHibernate/Dialect/MsSql2005DialectQueryPager.cs
	src/NHibernate/Dialect/MsSql2012Dialect.cs
	src/NHibernate/SqlCommand/Parser/SqlTokenizerExtensions.cs