feat(serial): Add serial_flush function

serial_flush() allows flushing the serial buffer from anywhere in

- When run from thread mode it will flush to UART, CDC-ACM and BLE.
  This is similar to what the serial task would do once it is
- When run inside an exception handler, it will only flush to UART
  because CDC-ACM and BLE cannot be flushed from an ISR.  Note that
  characters flushed this way will never appear on the other outputs,
  even if the serial task is scheduled at some point afterwards.

The main use of this function is to ensure output of messages even in
cases of critical failures.

Signed-off-by: Rahix <rahix@rahix.de>
2 jobs for !314 with rahix/flush in 59 seconds (queued for 3 seconds)
merge request