MediaDatabase: work around devices with broken /data

Allow these devices to at least start up and play files
compile.sh: bump HASH again
libvlcjni: refactor event handler code

To prevent code duplication for use in another class soon
libvlcjni: factorize media list support

Eventually this allows for having multiple independent media lists
MediaList: add support for events
libvlcjni: add media list selection
Media: use the primary playlist, for now

These will eventually be refactored/replaced as the refactoring continues
libvlcjni: refactor expandMedia for MediaList
MainActivity: remove tab remnants
MediaList: add loadPlaylist()
MediaList: add clear()
MediaList: work around subitem inheritance

As input_item_AddOption() lacks a counterpart input_item_RemoveOption() to remove the parent input's option, create a new media to work around it.
VideoPlayer: reduce overdraw
AudioUtil: add playlist dir
Initialize folder constants at launch

We should be able to access the playlist directory path without AudioService.
LibVLC: add getMediaList()
MediaList: fix prototype
MediaList: extend add() to support parameters

Continued refactoring from LibVLC.readMedia()
Add network caching option

Close #7792
HistoryFragment: fix (null) items when deleting in HistoryFragment