Add threaded downloads

- [x] Implement API
- [ ] Make the slices configurable