Various optimizations to RingBuilder.rebalance()

Overall gain is about 20-22% of time on my laptop. This includes:

* replacing string sort_key with a tuple (because we can and because
  compairing two 3-tuples is faster than comparing two 26-byte strings);
* keeping track of hungriest dev in tier (allows us to use built-in
  dict.__getitem__ as a key instead of lambdas in couple of places);
* remove unnecessary sorted() call in the innermost loop (because we
  don't need to sort all of them or better we don't need to sort
  anything there);
* memoize tiers for each dev (saves just a couple of percents but why
  not).

Performance measurments have been done using this script:
http://paste.openstack.org/show/55609/

Related-Bug: #1262166
Related-Bug: #1261659
Change-Id: If38bd9fe82efc12b01e9aa146e0f4ab565fb6bea
Add Swift-account-stats as a related project.

Change-Id: If2620a6b448581697d0d049578ea28faead6fbcf
Raise diskfile.py module coverage to > 98%

We attempt to get the code coverage (with branch coverage) to 100%,
but fall short because due to interactions between coverage.py and
CPython's peephole optimizer. See:

    https://bitbucket.org/ned/coveragepy/issue/198/continue-marked-as-not-covered

In the main diskfile module, we remove the check for a valid
"self._tmppath" since it is only one of a number of fields that could
be verified and it was not worth trying to get coverage for it. We
also remove the try / except around the close() method call in the
DiskFileReader's app_iter_ranges() method since it will never be
called in a context that will raise a quarantine exception (by
definition ranges can't generate a quarantine event).

We also:

* fix where quarantine messages are checked to ensure the
  generator is actually executed before the check
* in new and modified tests:
  * use assertTrue in place of assert_
  * use assertEqual in place of assertEquals
* fix references to the reserved word "object"

Change-Id: I6379be04adfc5012cb0b91748fb3ba3f11200b48
Merge "Add Swift-account-stats as a related project."
Merge "Raise diskfile.py module coverage to > 98%"
Merge "Various optimizations to RingBuilder.rebalance()"