Change _LIBCPP_TYPE_VIS to use __type_visibility__(default) instead of __visibility__(default) when available.  This change makes just the type_info visible so that types like vectors and strings can be used as exception objects across dylib boundaries even when hidden visibility is specified globally (at the command line), and yet this allows clients to hide the member functions of things like vector and string (with global visibility commands).