When holding down a mediakey, we'd get stuck inside the specific keyRepeatTimer block in the display loop. This caused only one display (the first one in the array) to be controlled while holding down a mediakey.
* Add handling for holding down media shortcut keys
* Added handling to not send through DDC commands for values which had already been set
* Moved DDC reads and writes onto the main thread
- FIXED: Issue where changing brightness back from 0 wouldn’t restore previous contrast value
- FIXED: Restoring saved contrast value across app restarts
- FIXED: Issue where using the brightness slider wouldn’t adjust contrast
- FIXED: Issue where setting brightness to 0 after it was already 0 wouldn’t restore the previous contrast setting
- FIXED: Issue where trying to use the “true” mute command on unsupported monitors would cause the mute/unmute key to do nothing
- FIXED: Issue where “0” chiclets would be shown when the step value was less than the value of one filled chiclet but greater than 0
- CHANGED: OSD-based value system to map small increment chiclet count to available range of DDC values and regular increment count to 16 available filled chiclets
- Removed whitelist which caused some issues for some people #105
- Added `hide OSD` option to `AdvancedPrefsViewController`
- Added `Longer Delay` option to `AdvancedPrefsViewController`
- Added `PollingMode` and `PollingCount` to `AdvancedPrefsViewController` (should help #37)
- Added option to reset all preferences to `AdvancedPrefsViewController`
See the wiki for more info: https://github.com/the0neyouseek/MonitorControl/wiki/Advanced-Preferences
* Changed mute command from '0 speaker volume' to 'true' mute (0x8D)
* swiftformat changes
Swiftformat does this by itself so I figured might as well commit it