Refactor `SourcegraphWebApp` for performance improvement
Created by: tjkandala
Implement medium-term proposal from #12637.
I combined 6 state-setting subscriptions into 1. Logic for turning settings into state now lives in util functions. Result: only one render when toggling extensions or updating settings.