Adjust unit tests to clarify existing device usage

Most of the unit tests run with check_mount=False, so if a device is
chosen by a test that was not created ahead of time, the test will still
work, since the "tmp" directory creation in DiskFile.create() using
mkdirs(), thereby creating the a directory for the device (perhaps that
should be fixed).

This change refactors the test code to use the exiting device
explicitly.

Change-Id: Ib4fbf069596672bb0b98f41573f312eabde38f98
Mark from_hash_dir() as internal-use-only using a leading underscore

Change-Id: Ie4f6af673f587efd0ff491fc72385e2366ce933d
Ensure a/c/o properties are always not None

We ensure the account, container and obj properities of a DiskFile
object are always not None by enforcing their use after that object
has been opened.

We also very the "name" metadata of a tombstone is valid, quarantining
it before its use.

Finally, we add documentation for the officially supported properties of a
DiskFile object.

Change-Id: I03d9fd4d987c0cd5e427288c269239ec669f7238