treat QSGlobalSelectionProvider as a singleton

allows us to use instance variables to keep track of things instead of
static locals