New browser user interface

Pre-review pull request. There are still things to polish.

There are plenty of commits due to several reason. Design has evolved, I haven't picked commits to master, and some commits just do not fit for master (e.g. due to tab model changes).

What's missing / known not to work yet:
- Cover when no tabs available
- There are likely some code duplicates
- Startup time is not yet optimized
So remove doesn't really remove the tab from the model?