Some initial code to get Downloader non-blocking
Added slightly cleaner way to communicate TransferStatus
Added some async code to AddonManager
Added AddonDialog and connected it into the whole non-blocking update stuff
Replaced fancy C++11 lambda with old style static function wrap in Downloader

The C++11 lambda would work, but the lambda has to be cast to a
C-style function pointer first, cURL however doesn't provide function
pointer definitions for quick and easy casting and since it takes
arguments as va_arg it crashes and burns when passing in a raw lambda.
Old style _wrap is simply easier then casting to the proper function type.
Hooked up progress reporting into the AddonDialog, non-blocking downloads are working now

Code still misses proper Addon install once the Download is completed
Removed AddonMenu sorting code, since Addons are order dependend they should never be sorted

Meaning a skin pack with new graphics might shadow graphic files in
another skin pack. Adding a manual way to reorder addons via Peek_Up/Down keys
might be a good idea.
Implemented delayed destruction of Dialog in MenuManager to avoid "delete this" type problems
Added file writing and then-callback to Downloader
Added then-callback to AddonManager and use the then-callback of Downloader
Made AddonDialog output some prettier text, installation of Addons now seem to work

Error handling is still largely missing for failed downloads and such
Added ugly workaround for Console crash at startup

This is an ugly workaround for a crash at startup. Console::current()
becomes valid before the Console constructor is finished and loading
Surfaces and Fonts wants to write text to the Console, with Fonts that
aren't yet loaded, thus crashing
Handle all numeric characters as fixed width, even in variable spaced fonts

This reduces jitter when numeric values change, such as in the
download status dialog.
Implemented non-blocking download for the repository index list
Use a chain of callbacks instead of a single one in TransferStatusPtr

This allows reusing it in AddonManager and not bothering with creating
it's own, but basically empty InstallStatus.
Removed AddonManager::InstallRequest, the data can be hold in the lambda capture instead
Renamed AddonDialog to DownloadDialog, as it isn't AddonManager specific any more
Wait for an explicit "Close" by the user instead of closing the DownloadDialog automatically

Downloads are most of the time rather fast, having the window just pop
up and go away feels a bit irritating.
Save and parse repository index when AddonManager loads

Meaning the user doesn't have to redownload it each time he starts the
game.
A first try at error handling in the Downloader

This isn't fully working, as skipping the .then() callbacks skips over
important cleanup and leads to failure further down the line.