input: fix missed wakeups, simplify

mp_input_read_cmd() reset the wakeup flag, but only mp_input_wait()
should be able to do that.
player: normalize playlist entries on add

This is not necessarily more correct, but it's less trouble.
player: deal with some corner cases with playlist navigation

The purpose is making accessing the current playlist entry saner when
commands are executed during initialization, termination, or after
playlist navigation commands.

For example, the "playlist_remove current" command will invalidate
playlist->current - but some things still access the playlist entry even
on uninit. Until now, checking stop_play implicitly took care of it, so
it worked, but it was still messy.

Introduce the mpctx->playing field, which points to the current playlist
entry, even if the entry was removed and/or the playlist's current entry
was moved (e.g. due to playlist navigation).
player: reset some VO state when video is terminated

Useful for idle mode or if video is switched off during playback, and
--force-window is used.