Having UnknownArrayHandle.h include DefaultTypes.h is problematic,
because that header includes lots of other classes like cell sets.
Keeping these from in turn depending back on UnknownArrayHandle.h is
difficult. So this MR breaks this dependency.
no longer includes DefaultTypes.h, so DefaultTypes.h and all of its
dependencies can in turn include UnknownArrayHandle.h.
This change is required for features like !2551 (merged) where a core class
wants to use
UnknownArrayHandle to compile something in a library