add bencode as submodule
fix ruby-bencode deps
add test torrents
Remove bencode
Make client.rand_id class method
Whitespace
Stop Block knowing about Helpers or metainfo

* Helpers is a big bag that Block only used one fn from.
* Just pass in piece_length instead of using the function from Helpers
Require helpers now that Block doesn't require it
Helpers is a worryingly vague name
Whitespace
Rm commented out code
Rm pry
Format hashes for readability
Add create_request() and use to create requests
Avoid mutation when shuffling requests
Good news: this code can be removed because it is not used
Rm unused sort_by_index()
Rm unused remove_finished_pieces
Rm threads.

* request_scheduler doesn't need to be in a thread because it just does its work and then is never called again.
* Therefore, incoming_block_process doesn't need to be in a thread, either.
Combine block get with loop condition