mplayer: fix cleanup if VO initialization fails

Just specifying a VO that doesn't exist would make it crash.
Regression caused by commit 6a0408b.
mplayer: fix some issues with playlist_prev command

You couldn't jump to the first entry in the playlist, if that entry was
marked as "too short". But this is usually fine, because it doesn't get
into the way of the user. (This feature is meant to allow being able to
jump backwards through the playlist even if a file immediately stops
playback right after initialization, not to prevent playing these files
at all.)

Also, apply the skip logic when wrapping around the playlist when going
backwards. This happens with --loop, because looping pretends the
playlist is infinitely repeated forwards and backwards (as long as the
playlist_prev/next commands are concerned).

Also add some comments.
command: add properties for retrieving OSD dimensions
command: add commands for displaying overlays

Requested by github issue #255.

Does not work where mmap is not available (i.e. Windows).
ao_sndio: add documentation