Rewrite Cursor.fetchall - less code duplication
Rework row fetching across the module

Whilst checking the performance implications of #158 it was noted that
there was a rather large amount of type conversion occuring when
fetching a row from pymssql. The number of conversions required have
been cut down significantly with these changes.

For a tuple row it is changed from:

tuple -> dict -> dict -> tuple to tuple

And for a dictionary:

tuple -> dict -> dict to dict -> dict

The additional dict->dict conversion could be dropped with either
additional arguments being passed to _mssql so it doesn't add the
positional mappings to the dictionary. I didn't want to break the _mssql
module just incase.
fix foolish issue not adding a row format to the connection __iter__
Merge pull request #159 from pymssql/rework_row_fetching

Rework row fetching