Implement eglSetSwapInterval in the wayland platform

This PR re-instates the use of the frame callback to properly implement
both setSwapInterval(0) and setSwapInterval(1).

There seems to be some general confusion as to what the right thing is to do here. One PR remove the frame callback entirely. There's another pending PR (by someone else) that re-instates it only with environment variables to turn on/off parts of it. My solution is to use eglSetSwapInterval.

Personally, I think we should be using the frame events in the sense that that's the proper Wayland thing to do. However, I recognize that this may cause problems from time to time. However, IMHO, I'd prefer that we figure out what's causing things to break rather than just shutting off frame callbacks and hoping for the best.