WebSQL : Better transaction handling and speed up

These commits use SQLite's savepoints to implement actual transactions in WebSQL and add a cache for prepared statements.