Represent equivalent `enum`s the same as `bool`, make `bool` an `enum`

[CLICKME](https://github.com/glaebhoerl/rfcs/blob/make-bool-an-enum/active/0000-make-bool-an-enum.md)
> represent an array of enums as a bit field or something

This specifically would break interior references.

But in general, as noted in another comment, any representation change you'd want to do for `bool`s, you would *also* want to do for the equivalent types. They only differ, after all, in naming. If you like, this is a specific case of the more general property that representations of types which differ *only* in their names and the names of their fields/variants should always be the same. (Because there is absolutely no reason the compiler would *ever* want to choose different representations based on just names.)