Explanation: The upgrade to Liquidsoap 2.0 now means that Liquidsoap itself can hold more than one song in its upcoming queue, which allows us to make functionality like "skip song" work as expected for the first time, but also meant that our previous methods of tracking what songs were and weren't queued didn't work well at all. This overhauls the queue builder by adding a new "is_played" status to each queue entry and treating the entire "unplayed" queue (whether sent to the AutoDJ or not) as the "upcoming" queue, fixing a number of issues.
Includes the following major changes:
- Restructure the Vue application into more logical folder structure
- Create per-page entrypoint scripts that define Vue dependencies, removing this job from the asset manager
- Implement vuex and use it to manage cross-component communication (i.e. for the audio player)
- Add new "~" alias for the "/frontend/vue" folder to greatly simplify imports