The variant component's value constructor is no longer explicit.

This mimics the boost.variant value constructor.

Additionally, moved all std::forward calls to core::forward calls, as
well as moving std::move to core::move.