async date loading

 * asynchronous date loading interleaves the loading by loading chunks and releasing control back to the browser every once in a while
 * when a date is loaded, let the ui first handle the redrawing events and only then notify the date was already loaded
For a good reason. However a while loop wouldn't necessary be very nice here. Compare:
```
for (; idx < datesToProcess.length && idx < chunkEnd; ++idx) {
    datesWithDataArray.push(new moment.utc(datesToProcess[idx]));
}
```
To:
```
while (idx < datesToProcess.length && idx < chunkEnd) {
    datesWithDataArray.push(new moment.utc(datesToProcess[idx]));
    ++idx;
}
```

I personally prefer the for loop, a bit more succinct