Add print route command

Add list_routes command to print all routes in the app
Update build system

Added less task, updated docs and updated bower dependencies
Add session service

Session Service manages the session data for the frontend
It retrieves the user information and permissions from backend if they
are not available. Otherwise, provides the information from local cached values.
Update configs to run front end unit tests

The front end unit tests are located along with the module files instead
of in unit test own directory. The files are named as MODULE-NAME_test.js.
This convention is based on
https://docs.google.com/document/d/1XXMvReO8-Awi1EZXAXS4PzDzdNvV6pGcuaF4Q9821Es/pub
Add CAS module for backend

The CAS module only support CAS 1 for now. Also added /session and
/session/permissions to support front end
Refactor authentication and authorization module, add Session service

Now Session service as a data model is providing user and permission
information. Both getUser and getPermissions will return `thenable`
promise and the resolved value is the user/permission object. The
controller can hold a reference of user object for view. The getUser
will always return the same object so the reference in controller will
always be valid.
Merge branch 'cas' into model_refactor

Conflicts:
	acj/static/modules/course/course-module.js
	acj/static/modules/login/login-partial.html
	acj/static/modules/navbar/navbar-module.js
	acj/static/modules/navbar/navbar-partial.html
	acj/static/modules/user/user-module.js
	bower.json
	package.json
	tests/test_acj.py
Fix the broken code due to the merge
Remove bower_components and node_modules

As they are both external dependencies and can be installed by running:
make deps
Merge branch 'model_refactor' of github.com:ubc/acj-versus into model_refactor

Conflicts:
	acj/static/modules/course/course-module.js
	acj/static/modules/question/question-module.js