Define constants appropriately

Remove inappropriate global variable.
Add appropriate constexpr variable.
Remove anything but special member functions
Use union instead of optional

Implement special member functions which handle union.
Add friend operator overloads
Add operator overloads for member access
Add constructor of Either
Add Left and Right wrapper class
Add accessors
Add mechanism for implicit conversion
Add emplacement methods
Add helper function to create Left and Right