How can I make particles collide with each other?
There is an Add-on called Molecular. It makes the particles act as Rigid Bodies. The particles can be linked to each other as well.

Here is a teaser trailer that the coder made.

Just download the .zip, go to File > User Preferences > Addons and click Install from File. Select the .zip. Check it to enable it. If you need more help installing, let me know.