Implement EventTarget interface for window.screen
Get or Set the property on the current holder (after load of extension)

An extension (and any web app for that matter) can replace objects in the DOM.
If this happens as part of lazy loading, it means that the property access
which triggered the lazy load, had its holder object replaced and the access
it thus being triggered on the original holder and not the current one (as
replaced by the extension).

This patch makes sure that we trigger it on the current holder.

Example:

We lazy load when accessing window.screen.height, so when that is accessed
the extension system loads the extension (which replaces window.screen of
type Screen with ReplacementScreen).

If the extension was not loaded lazily, window.screen.height would access
height on ReplacementScreen (the holder), but when lazily loaded Screen hasn't
been replaced when the access it being made. Thus we need to make sure that
we call height on the new holder immediately after loading the extension.
Merge pull request #1494 from kenchris/replace

Make the Screen object compatible with the Screen Orientation spec