Instance Wrapper for UnionEnum.
Provides safe assignment and explicit casts.
TODO Use opImplicitCastTo instead of opCast when it becomes available in DMD.
TODO Join logic for ChainEnum and UnionEnum into common and then define:
- UnionEnum: only names must be unique
- StrictUnionEnum: both names and values must be unique
TODO Move to std.typecons (Type Constructor) in Phobos when ready.
Extensions to Enumerations.