Implement point source collection

This will be useful for dealing with simulations that have hundreds of thousands of point sources.