Framebuffer permissions, code review fixes

Added use of custom permission "android.permission.GRAPHICS" to
allow svmpd to read from the Framebuffer device, /dev/graphics/fb0.
Co-commits:
android_device_mitre_svmp
android_frameworks_base
Dial intent handler security, code review fixes

Improved how outgoing calls are intercepted (no need to choose the
alternate activity now). Added intent action validation to the
broadcast receiver. Filter action is a protected broadcast that
prevents spoofing from other applications.
Custom permission "RECEIVE_INTERCEPT_INTENT" is obsolete for now.
Clean up libsensors socket JNI code

* Remove dead fbstream functions
* Replace unecessary malloc with static var
* Better string handling of the socket path

Change-Id: I30d92db1f95a26687c7db4227728e498426acec6
WiFi spoofing

Added code to svmpd that sends a sticky broadcast and spoofs the
system into thinking that a WiFi connection is active.
Fixes DNS issues, also allows apps that require WiFi to function
(ex: DownloadManager).
Updated to WebRTC 3.52

Added necessary changes to use WebRTC 3.52.
Reformatted code in WebrtcHandler.
Fixed WebRTC teardown issues

Added updated libjingle binary that fixes WebRTC VideoSource
teardown crashes.
Changed WebrtcHandler to "reset" itself after receiving a BYE
message and tearing down its existing PeerConnection and
VideoSource. This allows the client's background service to keep
the socket connection open and renegotiate the WebRTC connection
whenever the client resumes the AppRTC activity.
Improve ICE server parsing

Altered the ICE server JSON parsing to support all the likely known
forms and combinations of username, password, credential, and url.

Also added debug logging of sent and received WebRTC signalling messages.

Change-Id: Ief4f1732ef0e3d448b6ce3175d5f084af9e92cf1
Update libjingle .so to fix runaway thread looping problem.

Occurs when VSYNC Looper timeout is set too low.

Change-Id: I7d1ff18b05c52e024f326663c407fdcf148c68ab
rebuilt the shared object with the race condition fix
Fixed notification handler error

Malformed notifications (those without a tickerView) no longer
cause a crash with a null pointer exception.
Added more descriptive error logging.
Set system timezone to match that sent by client

Change-Id: Ic47f85d2cc3fb69cc1034ca30466a373898cf5d9
Added support for single app mode

Added code to support receiving AppsRequest messages and process
them.
AppsRequestType "REFRESH" will take a list of existing apps that
the client has, compare them to currently installed apps on the VM,
and send back an AppsResponse instructing the client which apps to
add, update, or remove. Uses client's screen density to determine
what size icons to send.
AppsRequestType "LAUNCH" will simply launch a given app package.
Also changed Utility.drawableToBytes method to use PNG format
instead of WEBP, to allow support for transparency.

Co-commits:
svmp-android-client
svmp-protocol-def
svmp-server
Alter new socket accept loop to be non-blocking

Previously, the daemon was architected to handle only a single client
session at a time. For the duration of that socket connection, the
daemon was blocked from accepting new sockets. If that one socket
became hung for whatever reason (e.g., the client vanishing silently
without properly closing its connection to the svmp-server, resulting
in the svmp-server -> svmpd connection never closing) the VM's user
would never be able to reconnect until either the VM or the svmp-server
was restarted.

This patch changes the socket handling to be non-blocking, but still
only allows a single active session at a time. If a new connection is
received while an existing one is active, the existing session is
terminated, freeing up the daemon to handle the new connection.

Change-Id: I55da7b2322f6db7723b4a87b0d237ff2dc73a8a5
Key forwarding and single app mode update

Added new Launcher activity to be used for Single App Mode (when
resuming, instructs client to exit video activity).
Added handler to determine which mode the client is using and
start the appropriate launcher and/or app.
Added SVMP_BROADCAST permission and updated broadcast receivers
appropriately.
Added Config handler to deal with hardware keyboard config
messages and interface with the InputManagerService.
Revamped Notification handler to deal with new 4.2.2 changes that
broke it.
Cleaned up unnecessary broadcasts and permissions.
Added various comments and logging updates.

Co-commits:
android_device_mitre_svmp
android_frameworks_base
svmp-android-client
svmp-protocol-def
svmp-server