Cleaning up prior to branch
Refactor with Christian - finally managed to get the whole process working after we broke it yesterday rearranging classes. I now have Brain and Client classes that inherit from Peer. Brain controls the request piece & write piece process (top level), Client does the low level tasks that the Brain assigns it. The Client is now downloading the file from multiple peers. This seems to be working, but sometimes when I run the program the file doesn't look right -it's either blank inside, or it has strange gray streaks. I have to figure out why.
Not sure what happened here, but Tuesday's push from Hackbright has not gone through. I had to redo quite a bit of work - not too jazzed about that. In a nutshell: it seems I'm getting incomplete bitfields from the peers, so I often don't get the entire file on the first run. I need to account for that and reconnect to the peers until bitfield is complete. I wrote the function that calculates complete bitfield, separated Brain and Client and set up the brain so that it only connects to an n-size subset of the peers list. Another problem is that the same piece is requested from different peers at the same time, so it's being overwritten and my bitfield is being updated to an astronomical figure. Working on fixing that.
Socket.close() method doesn't allow you to reuse the socket, so when I reconnect to the peers I had to recreate the socket. Now the new connection is happening, handshakes are exchanged the second time but some of the peers don't respond to my request message. Trying to figure out how to impose a timeout for the Requests. Right now I'm stuck in 'requesting' mode for a piece that I'm never getting. The culprit is Deluge of course. Transmission and QBT work fine.
Cleaning up, removing deleted files from repo
Still having trouble because of the incomplete bitfields I'm getting. Sometimes Deluge doesn't send replies to my piece requests, so I'm not getting all the pieces. I have to restart the whole thing to get the remaining pieces.
Added ReadMe file
Corrected a typo in ReadMe
I tweaked small things, not worth mentioning because they didn't improve or break anything. The changes to the Tracker class  were made so that I could talk to an actual tracker, which I did successfully. But I decided it wasn't worth pursuing, because every tracker seems to encode the peers dictionary differently and few actually respect the protocol. Irritating, but I'll stick to my QBit tracker for now - I'm going for fewer variables at this point.
Added more to ReadMe
Nothing's really changed... just pushing this before merge.