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 dependancy is broken.
See #408 for details.
Since CastAndCall is meant to be a user callable function, we should make sure it is part of the vtkm cont headers