US President Donald Trump praised an armed bystander as a “great hero” for killing a teenage gunman who shot dead three children and a teacher at an Oregon elementary school.