Clean up how Extension Manager handles long descriptions

- Move UI code out of ExtensionManagerView into ExtensionManager
- Properly escape extension description when toggling truncated part