Eliminate looping through chain of results in performance critical codepaths.

This patch eliminates O(n^2) behavior on the number of chained results in
SC_execute. This makes it feasible to deal with large parameter arrays, for
example.

The idea is to track the owner statement of each result object, so that when
we need to check if a result object is already in the chain of results of a
statement, we just need to look at the owner field, not loop through the
whole chain. Also, keep track of the last result in the chain in
StatementClass, so that we don't need to iterate through it when appending
to the end.
Merge branch 'master' into master-with-testcases
Improve insertreturning test case, calling SQLNumResultCols() before and
after SQLExecute(). (it returns wrong results before, but this commit
memorizes the current, incorrect result).
Fix datatype in test case.
Fix column_size=5 varchar field in BoolsAsChar=1 mode.

If a query was sent to the server using the Parse command, we returned the
dummy QResult for the Parse, with 0 rows, to the caller of SQLExecute.
Fix by clearing out the result set just before executing.
Merge branch 'master' into master-with-testcases
Add test case for magic varchar with column_size=5 param with BoolsAsChar=1