Add either class template
Remove maybe::has_value

The operator bool will suffice. has_value is removed in order to align
the API with either.
Rename maybe::emplace to try_emplace

To align API with either.
Remove maybe::value

To align API with either. In favor of operator*.
Make empty comparable
Redefine maybe as alias to either

Now that the either and maybe class template have common API, maybe can
be simply defined as a special case of either. The make_maybe and
make_maybe_of functions are moved to either.hh.
Remove trial::has_value

The operator bool will suffice. has_value is removed in order to align
the API with either.
Split trial::get from operator*

The behavior of operator* is now undefined if the trial has no
successful result. The new function "get" has the operator's old
behavior.

The undefinedness of the new behavior imitates the usual pointer
semantics.
Don't call operator-> for failed trial

The trial::operator-> function now has undefined behavior for trials
without a valid result. This imitates the usual pointer semantics.
Redefine trial as alias to either

Now that the either and trial class template have common API, trial can
be simply defined as a special case of either.
Add either::flat_map function