* Fix various non-GCC warnings (no effect on GCC)
* Reduce use of typeof since non GCC compilers may not support it
* Introduce PICO_C_COMPILER_IS_GNU, PICO_C_COMPILER_IS_CLANG, PICO_C_COMPILER_IS_IAR to CMake as if (CMAKE_C_COMPILER_ID STREQUAL "xxx") is a bit verbose
* Use "unified_asm" macro for all inline asm (it is "volatile __asm" on GNU with a .syntex unified)
* Use NOLOAD instead of COPY in linker scripts (arguably more correct anyway)
* Use the same style for setting _etext in all 4 linker scripts (to the beginning of .data). Clang aligns .data on a 16 byte boundary. Note ideally we'd
add a new symbol __data_source, however that would break backwards compatibility with existing user linker scripts
* Use "a" for .stack, .heap sections because clang complains otherwise, and they are explicitly NOLOAD anyway
* Avoid duplicating __sev, __wfe, __wfi which Clang sometimes seems to provide as built-ins
* Add missing kitchen_sink_blocked_ram binary
* Allow build with LLVM Embedded Toolchain Form ARM v 14.0.0 (unsupported atm)
* i2c: set hold time of SDA during transmit to 2 for TCS34725 color sensor
* i2c: fix issues in i2c_write_blocking_internal
* i2c: rename sda_hold_count to sda_tx_hold_count
* use assert rather than invalid_params_if for internal consistency checks
* i2c: use a more appropriate sda tx hold time at higher baudrates
* i2c: reduce 120/1e9 to the smallest possible integer numerator and denominator
* Don't use implicit 0 for field LSB
Co-authored-by: Luke Wren <wren6991@gmail.com>