This patch implements LWG 2015, which requires than arrays used with [meta.unary.prop] traits have a complete element type.
Note that this patch should still diagnose the same cases as before, however the diagnostic now points to the base element type of an multi-dimensional array, instead of the array type itself.
If I'm not mistaken the correct thing to do is to retroactively apply it to C++11 even though it first appeared in the C++14 standard.
Is this correct for has_virtual_destructor()? LWG 2015 treats that the same as is_empty() and friends.