Cleanup the usage of `jl_datatype_size`
* Use `jl_datatype_size` instead of `dt->size`.
`jl_datatype_size` is always in bytes, whereas the underlying
implementation of `dt->size` might change.
* do not use .size directly (that is just asking for trouble)
* Introduce `jl_datatype_nbits` that gives nbits
Instead of calculating it per hand everywhere. This allows for
interesting experiments (and eventually not restricting `bitstype` to
multiplies of 8).