Allocate slave stores on heap rather than stack

Why was I lazy before? This could only have ended in tragedy.
Read and write files as binary in client
Move slave heartbeat() function to end of file and forward-declare
Stop using HRZ packets' counts

We instead recognize the end of a transmission by a STF of length 0.
This is being done to eliminate our (small) theoretical maximum file size.
These values are still transmitted, but extremely deprecated.
Remove count field from HRZ packets

The vestigial value has been vindicated!
Update signatures and calls: sendpkt(), recvpkt(), recvfile()

They no longer take the HRZ packet's old STF count field.
Further, recvpkt() now takes a bool * to indicate whether it got a HRZ.
Update protocol documentation and numerous comments

Largely to reflect the demise of the STF count in HRZes
Fix rereplicate() thread safety

Locking is now employed more consistently
Document the locks controlling master concurrent access

No comment? No more!
Remove useless files