Fix #266 - let FileSystem ctor figure out if an existing filesystem exists

This leverages the change we made to `ensure_root_directory` to either use or create a root dir.  This change greatly simplifies the work a provider has to do to `open()`.