Bug 1042943 - Allow users to switch search engine

It makes me nervous that we're essentially introducing a big race condition here. Instead of making this method return a SearchEngine, perhaps it should take a callback, which we will either call immediately if we already have the current default in memory, or we will asynchronously fetch the default, but still call the callback on the main thread.