if m_monitor is destroyed the doOnReadable will eventually hit UB on
destruction if checking a destroyed m_monitor. acctually use the
captured mon weak pointer.
Implements a new render scheduling method, where we triple buffer when necessary.
Enabled by default, improves FPS on underpowered devices.
---------
Co-authored-by: Mihai Fufezan <mihai@fufexan.net>