Public headers need the "if __cplusplus, extern C" boilerplate. Otherwise, C++
sources which include the header will look for a name-mangled symbol and fail
at link time.
Closes https://github.com/espressif/esp-idf/pull/6455
Closes IDFGH-4641
tusb: cdc, tasks encapsulation, callbacks api, multiple interfaces
examples: added serial interface and usb console
ci: reimplemented cmake/make test in python with ignore lists
IDF-578