Move tab destroy handling to C++ when downloading

We create always a new tab when an external url is received
either via dbus or commandline. A new tab is used to resolve the url,
the new url might be a download url. In case the url triggered
download, we need to destroy the new orphan tab and
activate the tab that used to be visible (active top most).
Download urls are not persisted to the tab database.

DownloadManager is used for handling downloads.