So far the backend libraries' include paths were relative within this
repository. This means the header files could not be used at their
installed location.
This change replaces them with "<>" includes to fix that problem and adds
a new include directory so building everything at once still works.
With this change it should be easier to actually split some parts into
another repository if this one would become too big.
* Lazy initialize systemd interface and don't initialize it
at all if the unit name is empty
* Allow to supervise/control system-wide units in addition to
user units (see https://github.com/Martchus/syncthingtray/issues/61)
* Avoid redundant code
Add new SyncthingLauncher class which lauches Syncthing
under the hood via external SyncthingProcess or using
libsyncthing.
Note: Launching via libsyncthing is still experimental.
This includes refactoring TrayWidget::applySettings() which
is now a member function and only affects the current instance.
This prevents applying settings on every instance every time
a new tray widget is created.
To apply settings for all tray widgets, the static function
TrayWidget::applySettingsOnAllInstances() is used instead.