Bug 1054303 - Use open search plugins for search engines

Still a WIP, but I wanted to open a pull request to share my progress.
Maybe move the parsing / construction into another class? Maybe even an inner class? I think the benefit would be keeping the SearchEngine class short, so it's easy to see what fields / method are available within the UI.