The right of free speech is Constitutionally guaranteed, however what's happening in Ferguson isn't free speech; it's anarchy, with the seal of approval by government agencies that are causing problems. Rioting, destroying private property, and loitering are not free speech; they're criminal activities and if it requires clearing the streets of anyone causing problems, then that's what needs to be done.
Start with the media, since they're contributing to the problem. The story is over, they're only contributing to the congestion, which is ruining local business, and they can hire a local reporter to keep them up to date.
Demand groups representing special interest file for a parade permit, wait in line for the permit and politely ask them all to stop gathering on the streets, impeding local commerce and scaring the public. If they refuse, arrest them, bring them to the edge of town, and tell them their next stop is jail.
As far as locals, they know their boundaries. People like their peace, and I have the feeling only a few are involved. Those causing trouble will find they're unwelcome, will toe the line, or find their life has become miserable.
As far as federal government representatives, there's not reason for hundreds to be there. If there are people breaking federal crimes, arrest them and leave. Otherwise, leave it to local authorities, and citizens, to handle their problems.