China rescues foreign cargo ship with 21 crew in South China Sea