add particle attribute `chargeState`

add species attribute `chargeState`

- attribute can added optional to a species
- if species has `chargeState` it is used in the trait function `getCharge(...)`

**This pull request change the trait `getCharge(...)`**

The `chargeState` is not set to the valid default value inside the initialization , this is a general problem and would fixed in a separate pull request
I am not sure if that can be guaranteed to fit (no underflow/overflow) in a `float_X` since it's the charge of a particle with weighting `1` isn't it?