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
It fits, getCharge is still float_X. It is the same equation as before.