Don't define MAKE-MUTEX in two different ways.
MAKE-MUTEX began as a stub defined in 'cross-thread', then got redefined
as a structure constructor. Its use in the host is to proclaim the type
of **WORLD-LOCK** and maybe other things, but it's not really needed
because WITH-MUTEX is basically PROGN for the host.
While it should be possible to use a mock object for MUTEX, it is equally ok
to define MUTEX as just an ordinary struct. THREAD is moved only to satisfy
the type-check from MUTEX, though the host does not make instances of either.
This highlights a confusing aspect of DEF!STRUCT - there is no way to declare
that instances are only to be created in the target and that the host's type
exists only to resolve a reference from another host type.