At least 28 people have died in street battles between Bangladeshi police and tens of thousands of Islamists.