As the I2C bus uses open drain output,
The receiving slave can hold the SCLK line low in order to prolong the transaction (in case it's busy...)
You should note that, even though clock streching is a part of the I2C standart - it's rarely used. So is 10 bit addressing and arbitration.
As to a master ACK from slave - the concept is very simple. As the master receives data from a stave, it must drive the SDA line low. This tells the slave that data has been received by the master.