Download

This adds downloading capabilities to both the client and the server. It's quite hacked together.
What I need to do is make it so that the RSEncoder doesn't stop if the whole array doesn't get filled. It needs to check both n and err, but right now it only checks err.

We'll probably discard DoubleReader entirely