Fix memory leak in SurfaceFlinger.

Call native_window_api_disconnect to free the memory used by OMX video decoder.
Or, there is memory leak in SurfaceFlinger after a stream playback is stopped.
Improve settings locking precision

1) Switch to R/W locks for CSettingsManager
2) Add separate section for settings map and other parts of
CSettingsManager
3) Add locking for CSettings
droid:jni, extend input device handling
droid: add controller/gamepad handling
FIX: Enable Hat handling in Application::ProcessJoystick
FIX: [droid] proper joystick Hat support
PR: fixup PR comments
Merge pull request #3512 from t-nelson/settings_lock_precision

settings: improve settings locking precision
Remove libass from repository
Use libass from external dependencies
Fixed exception in recent libass version.
[3D] add support to change the stereomode via builtins
[3D] add initial support for stereoscopics handling to JSONrpc
Bump JsonRPC api version
Merge pull request #3307 from da-anda/3d-interfaces

[3D] allow interfaces to change the stereoscopic mode of the gui
Merge pull request #3412 from blinkseb/external_libass

[Win32] Convert libass to external dependency
CurlFile: add implementation of base virtual function GetContent()
Merge pull request #3533 from Karlson2k/curlfile_update_05

CurlFile: add implementation of base virtual function GetContent()
Merge pull request #3428 from oceanheart99/issue/3428

Memory leak when playing stream with xbmc in android platform
FIX: [droid] wrong path in gdb.setup