    /// Reads enough bytes from slave with address
    /// to fill read.
    ///
    /// # I2C Events (contract)
    ///
    ///  text
    /// Master: ST SAD+R        MAK    MAK ...    NMAK SP
    /// Slave:           SAK B0     B1     ... BN
    /// 
    ///
    /// Where
    ///
    /// - ST = start condition
    /// - SAD+R = slave address followed
    ///     by bit 1 to indicate reading
    /// - SAK = slave acknowledge
    /// - Bi = ith byte of data
    /// - MAK = master acknowledge
    /// - NMAK = master no acknowledge
    /// - SP = stop condition
