The Iraqi military says it has almost entirely recaptured Tal Afar from Islamic State in a battle that has taken just one week.