* Add a "Pause Emulation" option and hotkey
Closes Ryujinx#1604
* Refactoring how pause is handled
* Applied suggested changes from review
* Applied suggested fixes
* Pass correct suspend type to threads for suspend/resume
* Fix NRE after stoping emulation
* Removing SimulateWakeUpMessage call after resuming emulation
* Skip suspending non game process
* Pause the tickCounter in the ExecutionContext
* Refactoring tickCounter pause/resume as suggested
* Fix Config migration to add pause hotkey
* Fixed pausing only application threads
* Fix exiting emulator while paused
* Avoid pause/resume while already paused/resumed
* Cleanup unused code
* Avoid restarting audio if stopping emulation while in pause.
* Added suggested changes
* Fix ConfigurationState
* Make audio disposal thread safe on all 3 backends
* Make OpenAL more consistent with the other backends
* Remove Window.Cursor = null, and change dummy TValue to byte
* audio: Implement a SDL2 backend
This adds support to SDL2 as an audio backend.
It has the same compatibility level as OpenAL without its issues.
I also took the liberty of restructuring the SDL2 code to have one
shared project between audio and input.
The configuration version was also incremented.
* Address gdkchan's comments
* Fix update logic
* Add an heuristic to pick the correct target sample count wanted by the game
* Address gdkchan's comments
* Address Ac_k's comments
* Fix audren output
* Address gdkchan's comments