[EGL] Fix the non-trivial dirty rectangle modes

EGL is typically double or triple buffered, and the previous buffer contents are not preserved.
This means the non-trivial dirty rectangle modes display a flickery mess.

EGL does provide a means for requesting the EGL buffer is preserved across calls.
It seems appropriate to request that when using dirty rectangle modes.

This PR makes algorithmdirtyregions 1 and 2 work on the Raspberry Pi.
It needs testing on other EGL platforms.
Merge pull request #3021 from popcornmix/dirty_rect

[EGL] Fix the non-trivial dirty rectangle modes