refactor: Integrate menubar. Separate logic for taskbar app. See commit details
* Readme updated with environment variable prefix `TASKBAR=false` to disable taskbar. Use existing "electron" and "start" scripts in package.json. Configure taskbar to be enabled by default (i.e. `withTaskbar = true`) * Integrate menubar functionality including for taskbar including: * electron dependencies: `Tray` * electron-positioner: `Positioner` * Separate logic in `FetherApp` component dependending on whether `withTaskbar` is enabled, but shared functionality in `finalise()` function * Incorporate relevant Pino logs throughout to improve developer experience * Move options into FetherAppOptions class and move configuration config for options into a config subfolder within the module. * Use `extends` library to overwrite `DEFAULT_OPTIONS` options properties with those in `TASKBAR_OPTIONS` if `withTaskbar` is enabled * Add ability to pass `customOptions` to further overwrite the values in the config directory, and add option setter and getters * Move taskbar icons into app/options/config subdirectory. Use different logic to set the path of the icons directory depending on whether it was run using the "electron" or the "start" script in package.json. Leverage the fact that when "electron" is run the environment variable `SKIP_PREFLIGHT_CHECK=true` is set * Set the Electron option `webPreferences.devTools` depending on whether we are in production or not particularly for security reasons * Fix `activate` event listener to cater for `withTaskbar` enabled or disabled usage * BUG: When running with `withTaskbar` enabled we are setting the option `show: false` because it opens the window in the center of the screen instead of positioned right under the taskbar icon at the top of the screen. When you click the icon in the taskbar it toggles the window open/close correctly positioned since it takes into consideration the `bounds` value in `FetherApp.clickedTray`. To fix the bug we need to reuse the same approach. * BUG: Additional `EventEmitter` does not appear to be working correctly or is not required. Investigate if can remove