Correct initialization of m_config->shellChangeNotificationType
In d832f34b731e7ee11f0cc6482e4c1c71d1d31e71, the application was updated
to register for shell notifications for all folders by default. As part
of that change, the command line value was no longer assigned a default
value.
This then meant that if no value was entered, the command line value
would be uninitialized, which would cause
m_config->shellChangeNotificationType to be assigned a random value.
That could then cause directory monitoring to break, as
m_config->shellChangeNotificationType might not have had a valid value.
To fix that, the command line value is now loaded into a std::optional
and only assigned to m_config->shellChangeNotificationType if it
actually has a value.
[size=0.85]Initialize CommandLine::Settings fields using default member initializers
[size=0.8]This makes it easier to verify that the fields within this struct areinitialized and ensures that the struct user doesn't have to manuallyinitialize some of the fields.