`Invalid` trait for space optimization of enums.

Proposing to add `Invalid` trait and use it for `Option<T>` space optimization.  This is an alternative to RFC #36.