Add ability to use aria2c for downloads.

This commit adds the ability to use one program that has gotten my attention for quite some time now, `aria2c` (even though it is called `aria2` by the upstream developer, as he probably has in mind a GUI in the future).

Anyway, this commit also makes it clear that we should abstract away the downloader stuff to a new class with each class associated with a different downloader *and*, to avoid proliferation of further downloader things, provide some generic background where the user can give us whatever they think is their preferred downloader with its needed options.

For this last part, I guess that letting the user give a template string to be used in the same fashion as `youtube-dl` uses a template for the output (see the `-o` option of `youtube-dl`).


Thanks,

Rogério Brito.