Ween the object auditor off of the DiskFile class

Given we are going in the direction that the DiskFile class is the
abstraction layer for the needs of the REST API layer, it seems that
the auditor should not use the same methods in order to truly
"audit". Instead, only the low-level on-disk file logic for the data
directory is shared, and all other verifications are performed using
direct inspections of the data.

As a result, the auditor performs a few more double checks to make
sure the "name" metadata attribute results in the same object data
file; adds some explicit error checking for quarantinable errors (bad
metadata, name does not hash back to the same data directory, unable
to open the file, unable to fstat the file). However, while the
current code will read the entire file only to find out that it does
not have a stored ETag, this code will quarantine an object that is
missing an ETag.

We also use this opportunity to bring the test coverage to 99%.

Possible related work:

  * Check that the X-Timestamp metadata value matches the given name
    of the object data file

Change-Id: I224e42d06ac49495a59e965502bcf3f323db1929
Signed-off-by: Peter Portante <peter.portante@redhat.com>
Push cooperative sleep call down into ThreadPool

The PUT REST API has no idea how writes are performed, so when thread
pools are in use, the sleep is not necessary, though it is still
necessary when thread pools are not in use. Since the ThreadPool
object knows when threads are actually in use, it can take care of
being cooperative with the eventlet hub.

In addition, we can hide the cooperative iterator hook, given that the
only other consumer of this was the auditor, which does not need it
any longer.  The only consumer of DiskFile is the REST API layer of
the object server, which always wants cooperative behavior from the
DiskFile class implementation.

Change-Id: Ibc4ac672899f9a35fd68c85d7f56403c19b4f991
Signed-off-by: Peter Portante <peter.portante@redhat.com>