Add missing C++14 conversions.
Remove the need for visitor result_type typedefs.

With std::result_of we no longer need the result_type typedef inside variant
visitors. We now deduce the type of the operator() overload automatically.