Anonymous enum types (A|B) take 2

I really liked this idea and have tried to address some of the concerns with it.

[rendered](https://github.com/scialex/rfcs/blob/anonymous-enums-2/text/0000-anonymous-enums.md)