PLAT-532: multiple fixes in multi download code:

added exception propagation from the http threads to the reader thread;
reduced the number of critical sections by using one RingBuffer per thread and computing the thread specific offsets based on the number of threads, the thread number and the number of loops performed;
commented the purpose of the member variables to improve the understandability of the code
lastExc needs to be synchronized because it used across multiple threads.