At least 20 people have been killed in a fire at a Malaysian boarding school, most of them teenagers.