__libcpp_refstring currently has two different definitions. First there is the complete definition in <__refstring> but there is also a second in <stdexcept>. The historical reason for this split is because both libc++ and libc++abi need to see the inline definitions of __libcpp_refstrings methods, but the <stdexcept> header doesn't. However this is an ODR violation and breaks the modules build.
This patch fixes the issue by creating a single class definition in <stdexcept> and changing <__refstring> to contain only the inline method definitions. This way both libcxx/src/stdexcept.cpp and libcxxabi/src/stdexcept.cpp see the same declaration in <stdexcept> and definitions in <__refstring>