Fixed ReadBytes overruning the buffer

The ReadBytes method was not properly accounting for cases when the Mic buffer is too big for the dedicated ReadBytes internal buffer. This code tries to deal with the issue by never reading more that what ReadBytes has as array. Tested, but since C++ is something I deal since soon, please, check more thoroughly :)