Add class for charged particles
This MR adds a class for charged particles. This is basically an updated version of the charged_particle branch which takes the latest changes in develop into account. This obsoletes the charged_particle branch.
- I have checked that my code follows the Octopus coding standards
- I have added tests for all the new features added in this request.