added missing `extern "C"` guards
Merge pull request #1856 from BytesGalore/extern_C_in_headers_drivers_add_new_headers

drivers: added missing `extern "C"` guards in new files
cpu: use typed function pointer for thread_arch_init
Merge pull request #1866 from OlegHahm/core_fix_thread_init_prototype

cpu: use typed function pointer for thread_arch_init