Added DisplayBuffer low level Task. This process is responsible to retrieve the current sprite from the display_task, lock it, draw it on the display, and release the lock
The display_task loop has been relaxed, it's now a kind of middleware between the apps and the buffer. When the display_task is rendering something it will not be directly visible on the display, a DisplayBuffer loop is needed to transfer the buffer to the display
Updated the SPI clock from 40MHz to 80MHz, the difference is huge
Added SUSPENDABLE_TASKS build flag: when enabled the motor, wifi, mqtt, sensor tasks are suspended when the DisplayBuffer is transferring the data to the display. The difference is mainly visible in the Demo -> Settings -> screen test demo view. Deeper tests on sensors, wifi and mqtt are needed, I don't know the side effects on these processes after a suspend-resume cycle