c++ implementation of the Higuera-Cary Particle Pusher
used references:
Introduction of the particle pusher: https://dx.doi.org/10.1063/1.4979989 or https://arxiv.org/abs/1701.05605 https://doi.org/10.3847/1538-4365/aab114
Little correction(s) by WarpX team: ECP-WarpX/WarpX#320