These idiots are SHOOTING at you! The answer seems obvious to me. Get a gun (a real gun) and shoot back.... anything in 9mm semi-auto or bigger, with a high capacity clip.
It will only take one mainstream news report featuring a cyclists sending one of these idiots to the morgue to let the rest know that there's real potential consequences for their actions.... Maybe even the bottle/trash/whatever throwers and road-ragers might start to think twice when they realize the cost of their stupidity might get them shot dead.
This might not go down well on a forum as liberal as this one, but you guys have the 2nd amendment on your side... if an armed society is a polite society and you want those cagers to be a little more polite then organize a few open-carry group rides. I bet that would be enough to open a few cager's eyes and maybe influence some attitudes.