* Updates spade.js vendor file, adds a sublime-project for developers to use
* Moves server logic away from handlers
* Moves session update logic to middleware, sets up server schema to autorender IDs as ObjectIDs
* Modernizes the supermodel loading scheme and switches from constructor to initalize
* Tweak wording, options
* Instead of storing changes in local storage, warn when users may lose changes by navigating away
* Fix CreateTeacherAccountView so that if you connect to an existing account, the redirect is triggered
* Fix users.coffee weird race condition
* Move api loading to FacebookHandler
* Use success callbacks
* Use same, properly named events
* Use same functions and property names
* Refactor related social button, out of use rendering system
* Remove the now unnecessary form split from CreateAccountModal
Renaming request quote to request demo
Changing create class wording to set up class
Showing different UI if teacher or not
Adding gameplay screenshots to homepage
Update request demo email
Closes#3449
* Fix error property name -> errorName
* showNotyError can handle Backbone error callbacks where jqxhr is second param
* showNotyError correctly shows JSON error message or name
* Add timeout to showNotyError
So that in forms you don't have to find the equality for each option. Instead,
just set the select value and, afterRender, call updateSelects, the options that
matches the value will become selected.
* If logged in => repopulate and lock email (and name if available)
* If logged out => disallow using an email for an existing account and display a validation message + login link
* formToObject handles checkboxes and radio buttons
* applyErrorsToForms handles required fields
* setErrorToField sets helpblock according to new forms best practices: before input and any help blocks