This branch implements np.can_cast
and 'np.min_scalar_type` in a way that closely follows the numpy C source. In cnumpy, these functions are little used but give nearly direct access to important internal functions. Here, they haven't yet been plugged into the main mechanisms for dtype resolution - this will come next.