refactor access to the backend

For "non-traditional" backends that expose a different namespace than that
directly accessible by straight POSIX calls, the access() call shouldn't be
directly used by the benchmark. POSIX calls can still occur as a result in the
current iteration of the code (e.g., uniqueDir option resulting in calling
mkdir), but for the moment I assume that backends will exit if an incompatible
option is selected.