core: add player API
This API will replace the usage of input_thread_t from interface modules. The
player implementation continue to use input_thread_t in private. The goal is to
hide the input_thread_t API when every modules are switched to the player API.
TODO (all need to be fixed, for VLC 4.0):
- Gapless: API is complete but not implemented (the player can play several
medias in a row, but without gapless).
- Position callbacks: still using the input_thread_t position that is really
imprecise (notified every 250ms minimum, and sometime more, depending on
pf_demux implementation).
- Seek/discontinuity callbacks: when seeking, the player can still send
position of the requested position, the actual position or the next position
to come. This leads to UI inconsistency.
- OSD messages should be display from input callbacks but it's not possible
now since you can't know if the event come from the user or from the core.