Internal server refactoring

Changed it so that the information about a download isn't stored on the Request object, but instead on a object of it on that also contains the Request object.