object-storage: backport starvation fix

Backport: "Fix starvation in object server with fast clients."

See https://github.com/openstack/swift/commit/783f16035a8e251d2138eb5bbaa459e9e4486d90

Change-Id: Ide99a201f44aa18cb1aac6f97b87c758a3eb1675
Signed-off-by: Peter Portante <peter.portante@redhat.com>
object-storage: yield during directory tree walks

Have the co-routine (greenlet) yield during long running directory
tree walks to avoid starving out other greenlets that might be
available to run.

A directory walk involves statting every file in the tree to get it
size. For large numbers of files, this can get expensive. So we yield
after every stat call, and after processing every directory.

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