Migrate several services/areas of extension API to a new model described in RFC 155 (tentatively Settings, Workspaces e.t.c)
Created by: twop
RFC: https://docs.google.com/document/d/1ikrUNVe3YVbR-JpegxhjrFdmRkTGzTLcOMkKHnOyjuE/edit#
Steps:
- introduce flat interfaces for API in both directions (ext -> main, main -> ext)
- introduce single object that holds the entire worker state
- migrate several simples services to the new model (tentatively Settings, Workspaces, Commands, Query transformer)
- main thread calls the new api object directly (no notion of a "services")
- rewrite/fix tests. That might be an interesting exercise to define our testing strategy for this rewrite
- replace/inline ExtClassX. Ideally we don't need one more extra layer of indirection here
See this WIP PR https://github.com/sourcegraph/sourcegraph/pull/10651 to overview API complexity