Merge Ionization into Dev to see changes

The code is compiling but once I try to run it, I am receiving a SegFault without much other comment. 
That happens when I use CUDA 5.5 or 6.0. If I use 6.5 it tells me that it cannot find a CUDA capable device.
no, memory size is not of concern (even if unsigned increases the range by a factor of two).

the rule is simple: if the range of the value is between 0 and N it makes no sense to use a signed type. using appropriate types also reduces possible errors and "magic number" miss-use.