Fixed|UI|Client: Destroy GUI widgets properly

It is never a good idea to call virtual methods from the destructor.

Now deinitialization is required before deletion, but GuiWidget::destroy()
is provided to do this conveniently.
Windows|Fixed|Updater: Native path manipulation in the download dialog