fix double free in SQLiteBackup.Close() on error
fix double free in SQLiteBackup.Close() on error

The sqlite3_backup_finish() function never fails, it just returns the
error code from previous operations.  Previously if it returned an
error, the finalizer wouldn't be unset and sqlite3_backup_finish() would
be run again on an already-finished backup.  This results in a
double-free and often segfaults.

The error handling is described in more detail in the "Error handling"
section of https://www.sqlite.org/backup.html.

lyonel/go-sqlite3,helight/helight_code,helight/helight_code,danderson/go-sqlite3,danderson/go-sqlite3,lyonel/go-sqlite3,helight/helight_code,helight/helight_code,mattn/go-sqlite3,xeodou/go-sqlcipher,accense/go-sqlite3,mattn/go-sqlite3,xeodou/go-sqlcipher,helight/helight_code,accense/go-sqlite3,danderson/go-sqlite3,helight/helight_code,accense/go-sqlite3,helight/helight_code,helight/helight_code,lyonel/go-sqlite3,helight/helight_code,mattn/go-sqlite3,xeodou/go-sqlcipher