Include Web SQL code in transaction error object

This updates the plugin so that it calls transaction error callbacks
with error objects that have a Web SQL 'code' property.

The plugin only maps a subset of the sqlite error codes to their Web
SQL counterparts.

Includes unit tests.
Only pass error info to error callback for statement that failed

The plugin now only passes the additional error info to the error
callback of the statement that actually failed.

The error callbacks for statements that were never executed are invoked
with an error object that only has a 'message' property (no change in
behavior).