Avoid struct-like enum variants.

They’re considered "unstable" enough as a language feature to be behind
a flag, and probably not worth it in this case.
Just use f32 for color channels instead of aliased c_float

c_float (used in rust-azure for colors) is f32 on all platforms we
support.
Fix broken link.