Clean up how Extension Manager handles long descriptions

- Move UI code out of ExtensionManagerView into ExtensionManager
- Properly escape extension description when toggling truncated part
It should decide what metadata to use (`installInfo` vs `registryInfo`) based on what tab you're looking at right now.