North Korean leader Kim Jong-il 'has cancer'