change mount/unmount metaphor to attach/detach
Right now, IOCipher is built around a model of a single process accessing the IOCipher container. For this, it is easy to make
unmount() make sense. But the underlying sqlfs layer fully supports multi-threaded access, both read and write, thanks to the magic of SQLite3. IOCipher should then also fully support multi-threaded access, and that means changing the API to reflect what the developer needs to track, and to better represent what is happening inside IOCipher.
detach() seem to make a lot more sense in the multi-threaded case, where
unmount() do not. The
mount metaphor is about a single action to make the disk ready for use, aka "mounting", then any process can use that mounted disk.
In order to handle when cacheword's timeout expires, IOCipher should also lock. This shouldn't force lock IOCipher, but instead let threads finish. Each thread will then be responsible for connecting to an IOCipher container, then disconnecting from it when complete.