ReceiveFile added, some names refactor'd

ReceiveFile method is more or less complete for selective repeat. The
only things missing are a maximum buffer size, and removing the padding
from the last packet. Right now, if a 4GB file is sent and somehow
packet #1 never makes it to the receiver, it will store THE REST OF THE
ENTIRE FILE in memory. This would never practically happen but it's
still really gross.

Also gross: I used a struct. Blame my C upbringing.

In fact, I probably made a mess out of a lot of things.

Anyway, I updated the constants that needed to be updated because of
that checksum size error (PAYLOAD_SIZE and MAX_FILENAME), moved the drop
rate and corruption rates into constants with a SIMULATION_ starter, and
also mover the debug flags into constants with DEBUG_ as a starter.