Implement SPI clean disable from TODO comment

Prevent data corruption and busy flag becoming unreliable by waiting for RXNE, TXE, and BSY flags as recommended in section 23.3.8 of the STM32F100XX Reference Manual.