libc: define mbstate_t as __mbstate_t

std::streambuf<char> is defined as an "extern template", which means it is
instantiated in the library, not at the point-of-use, in order to reduce
object size and compilation time.

One of its member functions, std::basic_streambuf::seekpos(...) has a
parameter whose type depends on mbstate_t; this embeds the type name into
the mangled function name.

On Linux, mbstate_t is a typedef for __mbstate_t, so the latter type name
is embedded into the mangled function name.  On osv, there is no such typedef,
so mbstate_t is embedded.  This causes lookup to fail when loading a shared
object that uses streambufs.

Fix by defining mbstate_t in the same way as glibc.

Signed-off-by: Avi Kivity <avi@cloudius-systems.com>