RFC: Anonymous enum types called joins, as `A | B`

Add support for defining anonymous, enum-like types using `A | B`.

[Rendered](https://github.com/reem/rfcs/blob/anonymous-enums/text/0000-anonymous-enums.md)
[It's parsed as `(x as A) + B`][link]. (To be clear, my comments were things that should at least be mentioned in the RFC, i.e. just missing details, not necessarily problems.)

[link]: http://play.rust-lang.org/?run=1&code=struct%20A%3B%20struct%20B%3B%0A%0Afn%20main%28%29%20{%0A%20%20%20%20let%20a%20%3D%201%3B%0A%20%20%20%20let%20x%20%3D%20a%20as%20A%20%2B%20B%3B%0A}