Make enum discriminants u64 instead of the host uint.
Don't truncate discriminants to host uint for C_uint's sake.
Add a test case for the preceding changes.

This would have failed on 32-to-64-bit cross-compiles.
auto merge of #8744 : jld/rust/discr64, r=nikomatsakis

This is in preparation for making discriminants not always be int (#1647), but it also makes compiles for a 64-bit target not behave differently — with respect to how many bits of discriminants are preserved — depending on the build host's word size, which is a nice property to have.

We may want to standardize how to abbreviate "discriminant" in a followup change.