Bind number values using sqlite3 number bindings

This updates the plugin so that it binds number values using the
appropritate sqlite3 number binding functions (e.g. sqlite3_bind_int,
sqlite3_bind_double, etc.).

This fixes the issue where columns without a type affinity would store
number values as strings. The plugin now mirrors the behavior of the
HTML5 Web SQL API and stores the data as is.

Includes unit tests.
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).
Move syntax error test before constraint violation test
Added ability to:
 - close crashed databse (this removes listing from js only, since the database was never properly opened in the native code
 - delete database from local file system (this can be done by terminating an open database or by specifying the name of the database that you wish to delete, both methods call the same method in the native iOS code)
 - open an encrypted database using sqlcipher for iOS (see sqlcipher.net for more details on this, it should still be possible to connect to an unencrypted database while using the sqlite library too)
Merge changes to bind number values as number values
Merge branch 'stormtek'
Comment out extra code for SQLCipher
Mark some new functions TBD subject to change