Define variants in a sub-namespace of their enum

[Rendered](https://github.com/sfackler/rfcs/blob/enum-namespace/active/0000-enum-namespacing.md)