Update server-side code to be more es6-ey

Review Request #9541 — Created Jan. 26, 2018 and submitted — Latest diff uploaded

Information

student-sonar
master
4d18c72...

Reviewers

This change changes the server-side code in Sonar to use ES6 modules and
more idiomatic and consistent syntax. The only thing left that's still
using module.exports is lib/schema, which manipulates the exports at
runtime (something ES6 modules can't do). A future refactor will address
this.

As part of this, I've updated the aws-sdk and memjs dependencies to
get newer versions which support promises. This allows us to move
entirely over to native promises, eliminating the Q library.

Went through the various functionality of the server and verified that
things work as expected.