Range backpressure concurrency & off-by-one bugfix

Bugs/deficiencies fixed:
- reading of the volatile ```requested``` multiple times
- ```numLeft``` calculated incorrectly if ```start``` was not 0
- since ```end``` is an absolute index and ```index``` goes up to it, there is no need for ```start```
- ```index``` gets only updated by a single thread thanks to the barriers provided by the atomic ```REQUESTED``` updater, there is no need for volatile.
- ```numLeft``` calculated incorrectly since ```end``` is an inclusive end index, thus the remaining count is +1
- ```completeOnFinish``` was false if the exact remaining amount is requested.