Fix undefined behavior in tuple_undef
Fix undefined behavior in tuple_undef

This fixes the issue in which some runtime environments will make this
fail, due to differences in initial contents of empty Buffer<>s.

The behavior of undef<>() is still a bit unsatisfying, though; although
this test accurately verifies the current behavior, it seems to me that
any Expr containing undef() that ‘escapes’ to evaluation should be
illegal; i.e., it’s fine to use undef() for values that will be
overwritten in later update stages, but it should be forbidden to use
“foo + undef()” as part of an evaluated expression. The latter *is*
legal and apparently the undef() part of the expression is simply
dropped.

kgnk/Halide,psuriana/Halide,psuriana/Halide,kgnk/Halide,kgnk/Halide,kgnk/Halide,psuriana/Halide,psuriana/Halide,kgnk/Halide,psuriana/Halide,psuriana/Halide,kgnk/Halide,kgnk/Halide,psuriana/Halide,kgnk/Halide