We also take the opportunity to convert AreaPositionManager to an ES6 class and use proper private members, as well as using DOMRectReadOnly instead of the bespoke rect-like frozen objects that we were using before. Differential Revision: https://phabricator.services.mozilla.com/D230114