FunctionalChargedProtoParticleMaker: Use ranges.size() instead of tracks.size() for # of input track ranges
Fixes a small bug where the size of the wrong container was used to determine the number of input track ranges, which is subsequently used to determine if the track key can be used when inserting new ProtoParticles.
Also a minor cleanup, prefer std::unique_ptr
to raw pointers for local storage.