Begin the process of reorganizing and rewriting the test suite

Pull the tests for all the new limits.py classes into a 'unit'
subdirectory.  These tests all use mock instead of the older
(and harder to use) mox.  Eventually, the full test suite will
be reimplemented in terms of mock, and unit tests will be
placed in the 'unit' subdirectory of the 'tests' directory,
allowing for the eventual addition of functional tests.
Move the Bucket and LimitMeta tests into unit.
Move Limit tests up through test_dehydrate()

This also adds a test on __repr__() and a minor change to __repr__()
to make the output deterministic.
Move and update tests on _route(), route(), decode(), and key()

Move and update the tests on _route() and route().  Also, alter
decode() and key() to be implemented in terms of BucketKey() and
move and update the corresponding tests to match.
Move format and property tests.
Alter _filter() and update tests

Update _filter() to use the new methodology for loading buckets.  Also
updates the tests, eliminating the mox-based tests for limits.py.
This brings test coverage on limits.py to 99%.
Take test coverage on limits.py to 100%

The filter() hook function does nothing, so insert a pragma to prevent
it from popping up in the coverage report.