New VarSrcParticle
New working variable source particle class. Purpose of this merge request is to provide a clear picture of code changes. But I suggest we simply incorporate these changes into the Particle class, then merge back into main. Again this merge request is only to provide a view of the code changes for review.