directly read dbFileName from Java in JNI; purge VirtualFileSystem.init()

Though it was a painful process getting through the JNI, this takes us in
the right direction in terms of clean code.

Also rename to dbFileName everywhere to match the name in Java, and make it
static since there can only be one open IOCipher VFS at a time.  And that
also means there is no point in making VirtualFileSystem implement
Comparible.
VirtualFileSystem now a singleton, only one mount can be active at a time

Since the current state of this code is that there can only be a single
virtual file system mounted at a time, convert VirtualFileSystem to a
singleton to make this fact clearer.

closes #3403 https://dev.guardianproject.info/issues/3403