Also spy on the native font watch runner when testing.
Use document.fonts to feature detect native font events so it works well with testing and loading in other frames.
Clean up native font watch runner constructor.
Fix toCssString method.
Prevent closure compiler from complaining about a new API returning a Promise.