Make sure execute runs select statements even if the resultset is not getting scrolled

This patch contains both the metadata getColumns() fix and the execute("select ...") one.
Sorry about not adding a test for the getColumns() case, this is entirely laziness.

For the execute case, I've modified the code following the Xerial approach of making sqlite execute the sql on resultset creation, and skipping step on the first call to next().
Not a thing of beauty I admin, but makes life it so much easier when porting code that assumes sqlite behaves more or less like other database (and eases migration from the Xerial driver).
For this one I actually looked into writing a test, but I could not find a function with side effects in the base sqlite package... do you know any?