Add Variant::emplaceWithFallback method

The new method is used to implement the Maybe class template.
Remove compile-time requirements for variant emplace

Checking for the strong safety requirements of variable emplacement at
compile time seems too strict and causing compilation errors in many use
cases. Maybe we should loosen the compile time requirements and check
safety at runtime.

One of the overloads of VariantBase::emplace is removed in this commit
in favor of emplaceWithFallback.
Add Maybe template class