I have come to understand that bit banging is horrible practice when it comes to SPI/I2C over GPIO. Why so?