Fix audio volume issues and remove dead code

There was some extraneous code left over from the AppRTCDemo that was
causing some problems.

1) There was a block setting a wakelock for no good reason

2) A second block changed some settings in the audio manager. These had
the side effect of messing up the client phone's volume settings semi-
permanently (at least until reboot or the app was uninstalled).

Both sections are removed.

Change-Id: I60ce9c099a333d5d67f971336bf58d0cd0f5254b
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.
Fixed issue disconnecting sockets

Fixed issue where, if the socket input stream or output stream
encountered an error, the AppRTC client wouldn't properly close
the socket upon exiting.
Updated client awareness of session expiration

Changed client code to read new Protobuf fields for session max
length and grace period. Changed database handler to store extra
session information and check for session expiration.
If a session is expired - either because it has exceeded its max
lifespan, or because it has exceeded its grace period for renewal
- the client will discard the session information.
Co-commits:
svmp-protocol-def
svmp-server
Cleaned up DatabaseHandler

Fixed typo in addTableColumn that would cause it not to work
correctly if it was used on a table other than 'CONNECTIONS'.
Deleted unused code.
Refactored AppRTC code

Added helper class with interfaces and functions that are used
throughout AppRTC code.
Replaced throwing runtime exceptions with error logging.
Cleaned up code in other classes.
Major class reorganization

Reorganized classes into names and packages that make sense.
Cleaned up AppRTC client

Moved state-changing Async tasks into sequential order.
Added comments.
Removed unnecessary/ambiguous methods.
Refactored performance measurement code

Changed code to use a Context and an AppRTCClient instead of an
AppRTCActivity, will be needed when this is moved to the service.
Changed handlers to use an adapter object to record data, instead
of directly accessing the span and point performance data objects.
Moved sensor handling

Moved sensor handling into AppRTC client (background service).
Removed unnecessary use of performance adapter.
Moved message and location handling

Moved message and location handling into the background service.
Re-organized AppRTC helper and client classes.
Made major changes to AppRTC activity.
Changed Message Handler to allow both service and activity to
listen for messages - the service receives all messages; if it
doesn't consume a message, it is passed on to the activity.
Fix screen orientation on tablet devices

Changed AppRTC activity to lock to the default "up" orientation for
the given device, instead of locking to "portrait" orientation.
Fixed location handling looper

Since location handling moved into the background service, and now
handles messages when called from the AppRTC client thread, it was
throwing a looper error. Fixed to use background service looper
instead.
Update WebRTC to upstream v3.52

Change-Id: I2485b1e6e693530383e97b89791f6f21477a1667
Updated ConnectionDetails to wipe session info

When using the ConnectionDetails activity to modify an existing
ConnectionInfo, we now wipe any session information associatedd
with that ConnectionInfo.
Changed AppRTC activity disconnect

Updated AppRTC activity, disconnect now sends a properly-formed
WebRTC "BYE" message. In addition, disconnect no longer stops the
background service - now the background service must be stopped
manually from the Connection List using the "Stop" context menu.
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.

Change-Id: I1c0d5726b3cb9a0354f61b8896415bf77f13c2d7
Minor error handling updates

Changed AppRTC activity to remove unnecessary "initiator" reference
that sometimes caused a crash when the connection reached an error
state.
Changed AppRTC client to correctly identify and respond to a socket
closing erroneously.
Changed SessionService to stop itself when entering an error state.