Add Component base class

Component classes represent a particular component/feature.

Signed-off-by: Jiří Janoušek <janousek.jiri@gmail.com>
Add TrayIconComponent

Signed-off-by: Jiří Janoušek <janousek.jiri@gmail.com>
Fix leaking reference in lambda signal handler

Note to self: Never connect lambda functions to signal handlers.

Signed-off-by: Jiří Janoušek <janousek.jiri@gmail.com>
Add PreferencesDialog.add_tab() to add extra tabs

Signed-off-by: Jiří Janoušek <janousek.jiri@gmail.com>