Fix frequency and duration in lcd.buzz

The previous buzz() implementation did not take into account the time taken to
write to the I2C when calculating the frequency and duration.
For higher frequency tones this actually dominates the time - in fact a
100KHz I2C bus only supports tones up to around 1500Hz where all time is
spent writing to the bus.
Additionally delayMicroseconds only supports delays up to 16.3ms which means
that tones below 30Hz are affected.