add new particle attribute `chargeState`

add particle attribute `chargeState` to support future ionization
change trait getCharge

- change interface of getCharge
- getCharge use chargeState if it is set for the given species
change unitless

- change definition of getCharge
add documentation
use new `getCharge()` trait

use the new `getCharge()` trait method to calculate the charge
rename trait `getCharge(...,particle)`

- rename the trait `getCharge(...,particle)` in `getAttrCharge(...,particle)`
- fix all dependencies
move GetCharge and GetMass to `picongpu/traits`

- add frame and attribute folder in `picongpu/include/traits/`
- add namespace `picongpu::tarits::frame`
- add namespace `picongpu::traits::attribute`
- move `getCharge` traits to `tarits::frame` and `traits::attribute`
use new traits `getCharge`and `getMass`

- fix all dependencies to the trait definitions of `getCharge` and `getMass`
use new getMass in all examples

- use `traits::attribute::getMass` in all single particle examples
reduce full namespace path for the trait calls

- reduce `traits::attribute::*` to `attribute::*`
- reduce `traits::frame:.*` to `frame::*`
Merge pull request #596 from psychocoderHPC/topic-addChargeState

add particle attribute `chargeState`