Refactor beeper (#13492)
* Beeper - improve/fix beeper sequencing
- beeperSequenceAdvance is used to advance beeperPos
- sequences starting with 0 (delay first) are handled correctly
- 'empty' beeper states are supressed
- leds do blink beeper sequence, even when beeper is silenced
* Beeper - refactor beep_multiBeeps
- simpler length definition
- helpper function to simplify beep generation
* Beeper - refactor beeperTable
Refuse modes where beeperTableEntry->sequence is NULL
Rest of code is refactored without functional changes
* Beeper - improve micros() overflow handling + minor refactoring
- beeperNextToggleTime==0 when not enabled
- lastDshotBeaconCommandTimeUs is updated during DSHOT_BEACON_GUARD_DELAY_US phase
- DSHOT_BEACON_ALLOWED_MODES instead of explicit tests
* Beeper - minor refactor
- improve comments
- add STATIC_ASSERT
- reformat some code
- move #ifdef to better follow semantic structure
- return unsigned from BEEPER_GET_FLAG
* fixup! Beeper - minor refactor
---------
Co-authored-by: Petr Ledvina <ledvinap@hp124.ekotip.cz>