Cleans up upload.py
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.
Removes 'todo' from unit tests that are fixed by the new uploader and removes
tests that were specific to the old algorithm.

test_second_error: There is no concept of a third pass for the new algorithm.

test_problem_layout_ticket_1118: As noted in the comments this should pass.
Changes unit tests to reflect new upload behavior
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.

Also fixes catalog_detection in test_download.Corruption.test_each_byte
Adds specification doc for Upload Strategy of Happiness