Add ssl and backend memory support in DownloadCenter

* DownloadCenter is switched from urllib.request.urlretrieve to http.client
to support both http and https connections in a similar way
* Add in memory backend support
* Report errors in a better way
* Adapt the tests to those changes
Rationalize interface for temp files and buffer

* Return different parameters: fd and buffer instead of file and content
* Now, fd will be removed once the fd is closed (it's passed open). This
enables to get the same behavior than for buffer.
* We seek(0) to always be at the start of the opened stream
* Add one test for the memory buffer download and adapt others
cleanup some unused variables