major refactorings to swift-selection-search, which now uses the async/await pattern (Promise-based) to wait for each engine in a group to be created before creating the next, making code much simpler; added back openerTabId when creating tabs; offtopic: improved discardOnOpen (hackish way!) to not cause tab "flickering" as much and reduce chances of not opening the search due to async problems (changes shouldn't be in this commit, but since I had to refactor, I did it now);
major refactorings to swift-selection-search, which now uses the async/await pattern (Promise-based) to wait for each engine in a group to be created before creating the next, making code much simpler;
added back openerTabId when creating tabs;
offtopic: improved discardOnOpen (hackish way!) to not cause tab "flickering" as much and reduce chances of not opening the search due to async problems (changes shouldn't be in this commit, but since I had to refactor, I did it now);

CanisLupus/swift-selection-search,CanisLupus/swift-selection-search,CanisLupus/swift-selection-search