Makes download finder deterministic

While the previous algorithm would reliably distribute shares
in increasing order to the trackers, Upload of Happiness doesn't do
this. This causes the finder to query for a random set of shares based
on the order shares are allocated by the uploader. In order for the
finder to have a reproducible behavior, the finder must sort servers
by their server id because Upload of Happiness tracks servers by server
id in a set.
Reworks test_lost_servers test in test_download

test_lost_servers is modified to reflect the different set of shares
the new fidner will reliably reproduce.
Modifies test_good_share_hosts in test_checker for Upload of Happiness

Changes test_good_share_hosts to check for behavior which
applies to Upload of Happiness instead of checking for behavior
that is specific to the old algorithm.
Adds specification doc for Upload Strategy of Happiness
Peer Selector tracks allocations accepted by the server
Skips test_second_error in test_upload.py
Changes test_servers_responding to reflect Upload of Happiness behavior

The test relies upon the old algorithm which would distribute shares
in increasing order to the servers. However, Upload of Happiness
doesn't guarantee this behavior so removing share 9 is not necessarily
removing the share from the server that is set to break.

To get test the same behavior the share 8 must be deleted instead.
Changes test_5_overdue_immutable to reflect Upload of Happiness

Changes which shares should hang for test_5_overdue_immutable in
test_hung_server.py to reflect the first 5 shares that the sharefinder
will try to download.
Cleans up happiness_upload.py
Reframes test_each_byte in terms of share 2
Removes error in establishing servermap_peers
Cleans up upload.py
Fixes test which is expecting a different server
Limits the number of servers contacted by the uploader to 2n
Adds test_number_of_servers_contacted

This test ensures that Tahoe only contacts 2n servers during
the peer selection process.
Fixes catalog_detection in test_download.Corruption.test_each_byte
Updates test_each_byte with different offsets

Now that test_each_byte downloads share 2 first, we can only detect corruption
at a different set of offsets. These changes reflect those offsets.

There is a significant reduction in the amount of corruption we can detect
when switching from share 0 to share 2. I'm not sure if this is a biproduct
of having a different share or if I have done something wrong. I may have
calculated the offsets incorrectly.
Removes trailing whitespace
Removes test_second_error because there is no third pass