JSON data downloaded asynchronously from the web

The downloader now starts a download on a new thread each time a
message/request to refresh the list is received. The download can also
be canceled.