convert: use _M_convert helper struct

Since C++11 (still) does not allow partial specialization for functions
and SFINAE get uglier in direct ratio to the number of special cases, we
employ helper structure _M_convert and specialize that for numbers,
bool, std::string and QString.
optional: make is_none const
option: rename value into values

It was clashing with value inside get template function. Plus it should
have been plural in the first place.
slap: properly handle boolean and optional values

Use to in get and remove get specialization.
Fix _M_to::func template for optional<T>.