US general killed by Afghan soldier in ‘insider’ attack