win32: move single instance back-end to separate interface
src: move one declaration
playlist: merge interface and playlist locks as one

This restores symmetry in the playlist API, but most importantly, it
is necessary to fix some corner case races (in later commits).
interface: create the playlist first and use it as parent
src: helper for command line item handling
lib: remove unneeded code
lib: add helper for playlist startup

Also remove a useless and unsynchronized test.
playlist: create instance only when needed

This avoids checking that the playlist exists over and over again. The
playlist always exists when an interface is running.
src: simplify and inline pl_Get()