Fix memory leaks on configuration lookup error paths
Fix incorrect short code in command line option lookup table
Add option to use breathing led patterns

Adds two new runtime configuration values
* sw breathing enable flag
* sw breathing battery level limit

These can be modified with mcetool options
  --set-sw-breathing=<enabled|disabled>
  --set-sw-breathing-limit=<0 ... 100>

The led patterns that are configured to use the fully on / fully off
blinking mode supported by the pwm led controller will oscillate
smoothly along the first half of sine wave.

For the smooth transitions to work frequent timer wakeups are needed
and the device can't be suspended. As this will increase the battery
consumption the sw breathing happens only if breathing is enabled and
battery level exceeds the limit or the device is connected to charger.

[mce] Add option to use breathing led patterns. Contributes to JB#17229
Cancel display on linger timeout if exceptional ui state is restarted

Before the fix exceptional ui state stack could get collapsed prematurely
due to previously scheduled linger timeout, leaving the display state
management out of sync with what is happening on the ui side.

[mce] Cancel display on linger timeout if exceptional ui state is restarted. Fixes JB#18788
Merge pull request #159 from spiiroin/cancel_linger_timeout

Cancel display on linger timeout if exceptional ui state is restarted
Bump mce version to 1.29.4
Clarify heuristics used for determining whether a pattern is breathable
Remove unneeded strcpy + snprintf
Fix typo in --help output
Pre-calculate breathable led pattern timing limits

Expanding the ranges in the conditional was not too readable.
Merge pull request #158 from spiiroin/breathing_led

Breathing led