coopth: put initially sleeping threads to sleep initially

... rather than after a state switch.
coopth: dont run detached threads directly from coopth_start()

Commit a8b25a6c9 introduced that likely for the sake of handle_signals().
So now we make sure coopth_run() is always called after handle_signals().
coopth: add sanity assert
simx86: e_do_int() should clear VIF from dosemu flags, not simx86 copy
coopth: disallow attaching to the unknown context, it is unsafe

Instead add coopth_attach_to_cur() that allows to attach another
thread to the current context.

Made dos2tty use that function instead of the unsafe attaching as before.

However, attaching another thread to current context will mean
any context switch (even coopth_yield()) will switch to that thread
until it exits or detachs. So basically this is not any better than
the direct call. No concurrency at all... Maybe dos2tty should use
the direct calls instead of emulating them via convoluted coopth API.
int: remove int33_post()

It was not called from coopth thread and therefore sometimes crashed.
dos2tty: open pts in parent to avoid failure reading it before child opens it
dos2tty: stop using coopth for pty relay

Use direct callback instead.
With latest changes the relay thread gets attached to the caller's
context, making it effectively similar to the direct call.
And the coopth dancing to emulates that direct call was just too convoluted.
coopth: remove coopth_asleep() and coopth_init_sleeping()

These functions were convoluting the code a lot and were never
properly supported (ignored by coopth_wake_up() for instance).
And are no longer used anyway.

coopth_detach() seems unused now too... but at least it doesn't
look that ugly, so maybe it should stay.