Efficient single inheritance with traits.

Efficient single inheritance via virtual structs and unification and nesting of structs and enums. In contrast to #142, this RFC uses traits for virtual dispatch rather than a custom system around impls. The parts of the RFC about nested structs and enums are identical to #142.
It makes no sense to use a closed trait for this.

There should be an "Element" variant of Node, and Element references would refer to the enum and not a trait object.