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 (the obvious ones) to their Web
SQL counterparts.

Includes unit tests.