librustc: Forbid enum-to-float casts.

Closes #14794.

If you're casting from an enum to a float, cast through an integer
first.

[breaking-change]