Fixed socket management issue

If a client connected to a server, then quickly exited the activity
before the socketConnect async task completed, it would cause leave
the socket open indefinitely (which affected the proxy server
negatively).
Added a failsafe in socketConnect completion step to check if the
activity is finishing; if so, it disconnects and shuts down,
otherwise it continues as normal.

Change-Id: I5820a18c54da168663e5cb7cc8897bd39ffa095c
Use all available means to hide the local nav bar

Take advantage of the newer APIs in JB and KK for hiding the nav bar.
In particular, it will use the new "Immersive" mode added in kitkat
(details: https://developer.android.com/training/system-ui/immersive.htmlo)
if possible. Does not yet scale the video to cover the whole screen even if
using the kitkat mode.

Change-Id: I6ebf0a1ae29dad5c69abec1cad31fec9d4625af8
Improve touch responsiveness by setting TCP NO DELAY

Disabling Nagle's algorithm on the TCP socket helps improve the touch
screen input responsiveness on cellular links. The buffering could get
excessive at times without this causing significant lags and skips in
input that degraded the user experience.

Change-Id: I894859a3f0e9d5319cd90dba5598d051ed19835f
Reformatted AppRTC code

Reformatted AppRTC client and activity classes.
Removed commented code blocks.
Optimized imports.
Cleaned up AppRTC activity

Separated AppRTC observers into different classes.
Removed unneeded functions and variables.
Fixed bug where receiving an AUTH_FAIL would cause a resource leak.
Move socket handling into the service

Converted the AppRTC client into a Binder object that is shared
between the SessionService and the AppRTC activity.
The service is created before the activity starts, and it is
stopped when the activity finishes.
Abstracted state machine

Created an actual state machine for establishing the SVMP
connection, uses the observer design pattern to update AppRTC
activity and session service.
Tweaked some of the toast messages.
Updated so failing to receive video parameters will trigger an
error message and return to the connection list activity.