Police estimate 22K attend gun rally in Richmond