osx: Fix broken build
glw: Wrap to other end when navigating

Fixes #576
Add support for .sub (MicroDVD) subtitle format

Fixes #1518
Drop support for serial devices (LGTV remote control)
Remove old audio framework
Rewrite settings API

This gets rid of the insane list of arguments passed to
settings_create_*() functions. Instead we rely on a vararg
function called setting_create() that can do a lot of things
kvstore: Add a deferred list so we can write stuff to kvstore and avoid
getting a lot of sequential writes to the same key.

Will be useful when we bind settings to use kvstore as storage
Remember set video/audio/subtitles playback settings for each video.
Add missing mutex lock
Allow settings to be enabled/disabled
Add per-video volume adjustment
Clean up HTTP API (use varargs instead of insane arglist)
Fix incorrect opcode for PING in websocket server
Rework Showtime's HTTP client

Add some infrastructure to support streaming of content back to
the caller, will make it possible to download content to a file, etc.

We also reduce memory consumption during compressed transfers
fileaccess/fs: Add write support to files

Also add makedirs() and fa_copy() for copying files in
virtual file system
fontstash: Use fa_copy() instead of lots of code to install fonts
trivial: Fix copy'n'paste error
Add htsmsg_json_deserialize2() that reports error
httpclient: Fix broken error code contract
glw/view: Add set() function