sqlfs_instance_count() to get number of active sqlfs instances/threads

Each sqlfs_t_init/sqlfs_open call creates an instance of sqlfs, which is
tracked internally.  This functions allows wrappers to get the number of
active instances to understand the number of active threads.  This is used
to check that an IOCipher VirtualFileSystem can be unmounted.

refs #3402 https://dev.guardianproject.info/issues/3402
zero out buffers that temporarily hold password/key data

refs #3402 https://dev.guardianproject.info/issues/3402
document sqlfs' "init" vs "open/close" modes of operation
base open/close functions on the init functions

In order to use the open/close mode as a way to track the mounted state
of the filesystem, the open/close mode needs to work with the init aka
threaded mode.  That means that the sqlfs instance created by sqlfs_open*
must be assigned to the pthread_key and the filename and password must be
properly cached for any threads that might be created.

refs #3402 https://dev.guardianproject.info/issues/3402
make sqlfs_destroy() to clean up after sqlfs_init()

sqlfs_init() is required for both "init" mode and "open/close" mode to set
up things like the path to the file and the key to the database.
sqlfs_open() calls sqlfs_init() to do that.  In order to leave things fully
clean, there needs to be also a sqlfs_destroy(), this is then also called
by sqlfs_close().  In threaded/init mode, sqlfs_init() must be called
before any threads start operating, and sqlfs_destroy() must be called
after all threads complete operation.
ignore all test db files
reorganize test after init vs open/close operating modes
check if sqlfs is open before trying to rekey database

Technically I think it is possible to sqlite3_rekey() on an open and active
database.  But for now, only run it when the user is not using it at all.

refs #3174 https://dev.guardianproject.info/issues/3174
purge reference to non-existent c_thread_api_password.c
tests: fix not-exist test, sqlfs functions return negative error values

errno is not used at all with sqlfs_proc_* functions, instead the correct
thing is to check the return value.  It is 0 if successful, and negative if
not.  The negative values are negative versions of the standard errors.