A frame callback without damage is still expected to be responded to. Implement this by simply queuing damage if there are any frame callbacks requested and there is no damage yet. If there already is damage, we'll be queued already, but with more correct damage. Without we simply need to make sure we flush the callbacks if any area of surface is not occluded.
Fixes: #457 (closed)
(cherry picked from commit d49d10b1)
This is needed for Firefox bug https://bugzilla.mozilla.org/show_bug.cgi?id=1629140. The testing infrastructure is based on Ubuntu 18.04, however RHEL 8 would also benefit from this.