Embedding support for offscreen-rendering
The current embedding API assumes it should render directly to a native widget at all times. These changes expose an option to render to an offscreen surface when starting the engine, as well as a new WebrenderSurfman API for temporarily acquiring the surface corresponding to the front buffer so it can be used for blitting purposes.
Demonstrated to work in https://github.com/jdm/servo-embedding-example.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors