Migrate global init stuff into Core.

This avoids code duplication in a bunch of places .
I also moved the NVIDIA Optimus export into VideoCommon.