Major API overall
Updated information on configuration

We need to add a separate doc describing the settings for config.
Small docs update
Updated models with svmp object
Added CLI option to erase sessions

Added "clear-session-info" CLI option to erase all sessions for a
given user.
API overhaul bugfixes

Tested proxy, fixed various object reference issues.
Added config file README

The config file is now JSON, so it can't have normal JavaScript
comments. Instead, created this file to describe the various
configuration values that are available for the server.
Added unit test for sessions

Updated authentication-test file to include a working unit test
for session re-authentication.
Updated README to show how to install and use Grunt for unit tests.
small changes while working on benchmarks
Added simple benchmarks
Updated config file README

Added more description for the "new_vm_defaults":"images" setting.
Improving/fixing openstack

Also added table output for cli
testing notes
Small bugfixes

Fixed config, now correctly constructs VideoResponse JSON to
avoid causing svmpd to crash.
Fixed proxy, now correctly forwards raw message from VMSocket
instead of trying to construct it into a Response.
Updated protocol debug logging.
More bugfixes

Fixed svmpsocket, added missing destroy() function.
Fixed server, added missing printErr() function.
Fixed proxy, changed VIDEO_PARAMS message to get sent to the client
instead of the VM.
Added debug logging for requests/responses when in the PROXYREADY
state.
Merge branch 'refactor'

Complete refactor of the code base

- Broke areas of responsibility into smaller components
- Created PacketReader and Custom socket reader/writer to support
  the delimited SVMP protocol
- All core functionality is instantiated automatically by calling
  svmp.init()
- The module space "svmp" is available throughout the frameworks 
  for core components. For example, to use openstack, you can call
  svmp.openstack, etc...
- Moved configuration to a more flexible API building on an existing
  opensource library. Settings can be modified at runtime. via
  "svmp.config.get()/set()" See tests for and example.
- Created repeatable tests for most core functionality
- Added enhancements to CLI such as table formatting on the 
  commandline

Commits merged:

* dc4bea6 More bugfixes
* c23c94f Small bugfixes
* e3517ad testing notes
* 7f5da13 Improving/fixing openstack
* 6aa3418 Updated config file README
* d837699 Added simple benchmarks
* ff115d5 small changes while working on benchmarks
* cda49cd Added unit test for sessions
* acb9c84 Added config file README
* 438848b API overhaul bugfixes
* 4bc14ad Added CLI option to erase sessions
* 2bd0cfc Updated models with svmp object
* bdb7edb Small docs update
* bf96d11 Updated information on configuration
* 7606ce5 Major API overall

Conflicts:

* b2c67fd Add ICE server username & password fields to config schema
	config/config-local.js.example
	config/schema.js

  Example config changes copied over from now-removed config-local.js.example
  to the new config-local-example.json.

  Schema diffs changes to match new code style.

* abd0fb7 Changed proxy Response handling
	lib/proxy.js

  Changes made obsolete since the refactoring completely replaced the protobuf
  socket handling and message parsing.

Change-Id: I8cd9e1b26eb033b3e25ee16ae4d4b3e5fa2bdbcc
Merge the refactor branch again.

Need to reapply on the new tree:

* 5e465f4 Add a timeout to the client socket.
* c296847 Add more user logging

Change-Id: Ice2275bca238c587c7e3921a7a0d8f3b55295231
Reapply: Add more user logging

* Log all socket connections prior to auth
* Add username to various log messages

Change-Id: I90be3b5101cfa7df7cab7020051f1f698b9f43a7
Reapply 5e465f4 Add a timeout to the client socket.

If the client hangs up silently, the socket will remain open on the
server's side. This keeps the connection from the server to the VM
open and prevents that user from reconnecting.

Now if there's no data received from the client socket for some period
of time (currently hard coded to 60 seconds), the server will terminate
the connection, freeing up the VM for reconnects.

This isn't a perfect solution since it will hang up on a still functional
client if they are idle too long. Turning on a sensor or the performance
measurement pings in the client will function like a keep-alive. The iOS
client currently lacks either of these, but a minute timeout should be
sufficiently long that we can expect to get some touch screen input that
will keep the connection alive.

Change-Id: Idf286fac67cd92705222a2ab8e40e3b5d50f5582
Use full file paths in config

Stop hard coding the file paths for logs and TLS certs to directories
within the svmp-server source directory. Restores old behavior of
treating those config file entries as full file paths so the certs and
logs can be placed anywhere in the file system, like in /var and /etc.

Change-Id: If55b1d755af763496f8696bf49e3ff2354bf8f9d