Better error handling in FMResultSet

If the initial call to sqlite3_step fails when handling a SELECT query,
the only response would be the FMResultSet’s first -next call returning
NO. To the client that looks like a normal end-of-rows condition, not
an error.

I fixed this by having the first sqlite3_step call happen while creating
the FMResultSet. That way if it fails, the caller (-executeQuery:…)
will return nil, which is the normal way an error is signaled.

Note: I haven’t been able to test this in an error condition because
I’m not sure how to reliably cause an error on the first sqlite3_step
call of a query.

Fixes ccgus/fmdb#227