Provide more detailed error messages

Use the sqlite3_errmsg() API to retrieve more specific error
messages.

eg. Attempting to exec 'CREATE TABLE ExistingTableName (...)'
will now report 'table already exists: ExistingTableName' rather
than 'SQL logic error or missing database'
Update test expectations follow change of concrete error type
Add unit test for enhanced error reporting

Add a test to check for a useful response for a SQL
query that cannot be executed due to a constraint failure
Merge pull request #91 from robertknight/rob-extended_err_info

Provide more specific error messages