rustc: Change byte literals to fixed-size arrays

This commit alters the type of `b"foo"` from `&'static [u8]` to
`&'static [u8, ..3]` and is an implementation of RFC 339.

This is a breaking change because not all operations are always compatible with
fixed-size arrays currently when compared with slices. As seen in the diff, if a
fixed-size array is the left hand size of an equality then the operator may not
resolve. Breakage may require some shuffling or explicitly converting to a slice
via `.as_slice()` or `[]`.

[breaking-change]
Closes #18465
auto merge of #18480 : alexcrichton/rust/issue-18465, r=jakub-

This commit alters the type of `b"foo"` from `&'static [u8]` to
`&'static [u8, ..3]` and is an implementation of RFC 339.

This is a breaking change because not all operations are always compatible with
fixed-size arrays currently when compared with slices. As seen in the diff, if a
fixed-size array is the left hand size of an equality then the operator may not
resolve. Breakage may require some shuffling or explicitly converting to a slice
via `.as_slice()` or `[]`.

[breaking-change]
Closes #18465