Add VLC frontend, separate some player-independent frontend code into its own module