Added some tests for the Iterator interface
Only reset the result set if we have advanced into it
Corrected the valid() method for the Iterator interface

Previously we were seeking back even if we didn't fetch a record,
most drivers forgive us for this, but mssql issues a warning when trying to fetch -1
Use fetchArray() when doing sqlite seeks

This is to avoid the overhead of our post-processing, as we don't care about the row data.
Also allow count() to be called during a loop of the result set by recording the start position and seeking to it after we have counted the rows