DTYPE: use a Categorical for bool dtypes
this may seem counter intutive, but this would allow us to store nulls as well (efficiently, rather than as ``object`` dtype), or casting to floats.

I am sure if this would really be possible w/o some API breaks, so will have a look.