* Qt: Initial support for Metal renderer
* Clean up graphics context code
* Nits
* More nits
* Qt: Move screen-related stuff to own folder
* Qt: Make screen widget polymorphic
* Qt: Re-add Metal
* Add factory for screen widget
* Qt: Support compilation without Metal
* Qt: Fix build without Metal
* Oops
* oops
This value is needed for vulkan to properly allocate a surface, and would benefit OpenGL to move more of its initialization code into here rather than in `emulator.cpp`.