Migrate global init stuff into Core.

This avoids code duplication in a bunch of places .
I also moved the NVIDIA Optimus export into VideoCommon.
The ifs right before this allow changing ```m_strVideoBackend``` (and ```bDSPHLE```), so you cannot just stuff that into ```Core::GlobalInit``` _and_ run it before the ifs.