This sets up the possibility of moving most non-gecko things to a base class, and start a protocol to add for all the subclasses to implement as needed. Differential Revision: https://phabricator.services.mozilla.com/D76920