BUG: arg validation in DTA/TDA/PA.take, DTI/TDI/PI.where
We have a _lot_ of really similar validation/casting methods in these classes.  This is a step in smoothing out the differences between them so we can share them.