Normalize (DataShape, CType) for unification

	TODO: use DataShape for 0d arrays
Apply all normalizers in a single pass to avoid ordering issues
Improve DataShape promotion to handle bare type variables matching parametric types
Document and organize promotion code somewhat better
Make sure measures are always DataShapes for unification
Remove some unneeded code