Use Daemon threads

In the current master branch, the scraper uses standard non-daemon threads and then uses .join() on each one to prevent the program from ending.

I think it would be better to use daemon threads (daemon threads die when the parent thread dies) and then use .join() on the queue.  We then never have to worry about the threads ending (they can be in an infinite loop reading from the queue), and yet they will still be cleaned up when the scraper exits.