At least 21 people, mostly foreigners, have been killed in a suicide bombing and gun attack on a popular Lebanese restaurant in the Afghan capital Kabul, police said.