Added prelimary implementation of invoke.

Added prelimary implementation of invoke function released on ISO cpp forum.
Extracted viable reference implementation.

Extracted viable reference getter implementation to separate file named viable_references.hpp.
Extracted type traits.

Extracted type traits like from invoke.cpp to separate implementation file type_traits.hpp.
Extracted to_viable_ref.

Extracted to viable ref to separate class. Extracted test classes.
Extracted type traits test.

Extracted type traits test from invoke cpp to separate file.
Moved implementation of option2 invoke.

Moved implementation of option2 of wording to the separate file. Changed name of invoke.cpp
ocordingly.
Added implementation of invoke option1.

Added implementation of invoke function compatible with option1 of
wording.
Make invokve constexpr.

Changed invoke to be an constexpr function.