Feature #4977: Refactor API of AssetsManager
Feature #4977: Add UPDATE_FAILED event
Feature #4977: Add UPDATE_FAILED event in test case
Feature #4977: Refactor Downloader::prepareDownload
Feature #4977: Refactor Downloader::batchDownload with curl_multi_perform
Feature #4977: Make downloadProgressFunc friend of AssetsManager
Feature #4977: Use a new thread for batch download
Feature #4977: Improve batchDownload logic and walkthrough the new curl multi perform process
Feature #4977: Improve error handling with curl error code returned