#2 Authentication

Implements #2, allowing for both CAS and email/password authentication. Refer to the issue for commentary; this PR includes significant changes including guest user functionality, integration tests, and more!

Issues Resolved (please check all during review):
* #2
* #694 
* #777 
* #965 
* #973
* #1018
Do you mean the indentation? This is actually how Ruby `case`/`switch` statements are meant to be indented. (see [here](http://www.ruby-doc.org/core-2.1.5/doc/syntax/control_expressions_rdoc.html#label-case+Expression)