Reproduction & simple solution for #111 for review

I have another way to reproduce bug #111 that does not require increasing the test timeout and will not affect any other tests. My observation is that the second, unwanted callback from db.executeSql() will not receive a valid res argument. If the callback function receives a second callback, with no valid res argument, it will show a test failure and let the test carry on.

In fact, for a single database statement executed by db.executeSql(), there is no extra BEGIN or COMMIT/ROLLBACK so my idea is to just keep it simple.