client-side functions and working controls

TODO:
- rewrite repeating buttons and possibly add touch gestures to directory
  listing
- ...but before that, we must implement directory listing and navigation
- although it's easier to implement now, playlist support is missing
-
-