This makes (https) links show up as actual links when they're in a message with a `formatted_body`. For example, the pursuivant messages in any KDE channel (like #kirigami), or links which are in a reply to another message/image.
Also corrected a regex mistake in another place using the same link replacement regex.
Fix#331
When using Breeze light:
| Before | After |
| ------ | ------ |
|  |  |
This started off as me just wanting to adjust the margin of the search bar but grew a touch ...
- Cleanup margins especially make the member search bar have the same padding as everything else
- Move room information title to header and align all buttons right.
- Make the room name actually bold
- Remove highlight from the user list item after the menu is closed
- Always use actual width so that the drawer isn't wider when modal
- Use control instead of pane for the search bar as the padding works more consistently
- Use BasicListItem instead of AbstractListItem for the member list as this has the layout predefined

https://bugreports.qt.io/browse/QTBUG-83890 has been open for years with
a patch that's been stalled for years. There's no indication that it's
going to be fixed anytime soon, and it generates bug reports for us.
Let's add the typical hackaround for all non-horizontally-scrollable
scrollviews.
BUG: 457584
QDesktopServices::openUrl does not have XDG activation support yet so it can't raise an existing browser window when opening URLs
Instead use KIO::OpenUrlJob, which does support that
Add menu option to change whether the room information drawer is opened automatically or not. This also adds some code to switch off the dim effect during the first animation after modal is changed as this looked bad.
Implements network/neochat#243
Slight cleanup removing the edge option for context drawer from main.qml as this is duplicated from RoomDrawer.qml
Simply enabling activeFocusOnTab on a few key elements massively improves the
keyboard navigation. Additionally, making the text box forward tab events when
appropriate allows for focus to pass through it without getitng stuck.
Previously, when there was no avatar set, the source property of Avatar was still set to 'image://mxc/',
which caused Avatar to load that from the imageprovider. The imageprovider can't provide an empty image and aborts with error