Rename package
Authentication updates

Fixed authentication to allow the client to authenticate using a
JWT.
Refactored authentication strategies, added error catching.
Rewrote and fixed changePassword API (no longer requires a JWT in
the header, now creates a JWT and sends to the client just like the
login API does).
Added "proxy_host" and "proxy_port" config options.
Removed "sid" from VM session model (now JWTs can be reused over
and over again; instead relies on unique username).
Updated tests

Fixed broken tests.
Added new tests for login, changing passwords, and VM session
management.
Removed authentication workaround code that accidentally made it
into the previous commit.
Added config file for travis-ci integration.
Rewrote README file to be more consistent with other SVMP READMEs,
and to clarify API section.
Fix test script for travis-ci
Added TLS. Fixed some config issues
Some renaming, moving around
Clean up
Implement PKI signing for authentication tokens

Switches the algorithm used to sign JWT tokens from shared secret HMAC
to PKI signing. The same key pair used for HTTPS is reused for tokens.

Default configuration changed to enable TLS for testing and test script
modified to automatically generate the test PKI cert tree.

Areas for improvement:
* Current code assumes the private key PEM file is NOT password protected
* Remove the use_tls option entirely and only support HTTPS mode since
  we need the certs anyway for tokens
* Make the loading of pub and priv keys for JWT signing more efficient
  by caching the strings in memory instead of reading from disk every
  time
Remove token strategy from user login

The login API should not accept tokens as a valid form of user
authentication. Users could infinitely extend their login session by
exchanging old tokens for new ones without ever having to present their
full credentials.
Working through cloud (CLI) stuff
Allow password protected server keys

Also enables use_tls by default.
Fixed client certificate auth and create-service-token

Client certificate auth was broken, the server was allowing
unauthorized certificates to connect; added a check to make sure
the client cert is authorized.
The create-service-token command broke with the new PKI signing
for authentication tokens; added code to fix it.
Config file overhaul

* Change config file language to YAML from JSON
* Use nconf module for handling configs
* Added schema validation for the config file
* Enable config overrides from command line and environment variables
* Allow setting config file from command line
* Altered tests to use their own dedicated config file in test/config.yaml
* Pregenerated a set of PKI keys and certificates in test/ssl/ whic the
  test config points to. These are shared with svmp-server.
Fixes for config changes, VM sessions

Fixed broken "grunt create-service-token" command.
Fixed default-config.js file.
Updated yaml config template.
Updated VM sessions to keep track of session connect times to
avoid session update conflicts (for example, when a client connects
while another client is already connected using the same account).
Updated VM Session model schema

Removed unused "sid" field.
Conf changes, VM session tests fix, migrate user model
Added more cloud calls, tests, and fixes

Includes static methods on User model for promises
cloud functions
Make server.js executable from shell
Relax too-strict host name formatter in config schema