librustc_trans: Get rid of unnecessary allocation in finding discriminant field.
libcore: Use Zeroable trait to try to limit what types may be used with NonZero.
libcoretest: Add tests for NonZero.