implement DownloadFile()

`DownloadFile()` retrieves a set of segments from a quorum and rebuilds the original file data.

I'm not sure what the best way is to organize all this client code; you can see I pass a `clientHandler` as an argument to `DownloadFile()`. That definitely doesn't sit well with me, but it works for the moment. I'm sure these organizational questions will be resolved as the codebase matures.