Use IOBufferDuration instead of preferredBufferDuration to set currentBufferDuration

In my usage, I found that there's a short period where the currentBufferDuration is erroneously set to the preferredBufferDuration.

The reason this happens is because -initAudioSession already sets currentBufferDuration to audioSession.IOBufferDuration. After this, if one calls -start, the code in question will see that the preferredBufferDuration doesn't match the already set currentBufferDuration and reset it to the preferred duration. A second later, this goes away, as the housekeeper sets it back again.