Bug 1593154 - Fix semantics of partial present API for webrender. r=sotaro
Bug 1593154 - Fix semantics of partial present API for webrender. r=sotaro

- When partial present is not valid, ensure that a single dirty
   rect the entire size of the framebuffer is returned.
 - Ensure that we never return an empty dirty rect. If nothing is
   dirty, the returned dirty rects array is empty, which can be
   used by the client to completely skip calling Present.
 - Remove partial present Multi mode (for now). This mode has
   some issues with overlapping tiles which can be resolved as
   a follow up.

This should allow enabling partial present for a single dirty rect,
which covers most common cases. We can re-implement the more
complicated Multi partial present mode if / when we find pages
where supporting multiple partial present rects is a good win.

Differential Revision: https://phabricator.services.mozilla.com/D51332

[wrupdater] From https://hg.mozilla.org/mozilla-central/rev/9c9fffed78e5aa1ff3a945755a3c28d93c6e1373

servo/webrender,servo/webrender,servo/webrender,servo/webrender,servo/webrender,servo/webrender