update libsqlfs to get sqlfs_instance_count and fixed open/close

refs #3402 https://dev.guardianproject.info/issues/3402
create mount/umount logic based on holding open a sqlfs instance

It turns out that IOCipher needs to have a mounted and unmounted state in
order to trigger when the key/password is zeroed out. So sqlfs_open() is
used to create the first sqlfs instance and keep it open.  The actual work
is done by sqlfs instances that are created on the fly for each thread.
That keeps it flexible so that a new sqlfs instance is automatically
instantiated whenever there is an IOCipher call in a new thread.

fixes #3402 https://dev.guardianproject.info/issues/3402
sort out the exceptions thrown when mounting or unmounting
reuse isMounted() method for internal mount checks