Variant read fixes

This pull request is a follow-up to PR #279 and fixes the length calculation for `sql_variant` types. These problems were not discovered in the original integration tests because only one field is read - the "misplaced" protocol cursor only surfaces for later fields.

Thanks @pdietz for hanging in there with me:)