add new current solver zigzag

add new method to calculate the current of moving particles

- [x] arbitrary shape support
- [x] 2D support
- [x] 3D support
- [x] documentation

Tested:
KHI electrons/ positrons
- [x] 2D CIC/TSC/PCS
- [x] 3D CIC/TSC/PCS

This means that all EvalAssignmentFunction<> only get correct results because we know that ZigZag implementation use `ShiftCoordinateSystem` to shift the coordinate system of the grid and particle to a shape optimized system @see ShiftCoordinateSystem