Added threaded download using futures module

I am using Python 2.7 for this which requires installation of the futures module. Once that is installed it's straightforward to add threading. It's not 100% optimal since we will download in chunks of NUM_THREADS but better than before. It's a bit tricky to do it the smarter way since we don't know how many pages we will end up with.
Can this be added to the `requirements.txt` file?