Make the Screen object compatible with the Screen Orientation spec

Polyfill the rest of the API with help from Marcos as Mozilla (thanks!)

Required some changes to the extension system.