What are the differences between I2C, SPI, and UART and when would you choose one over the other in Oura's embedded design?