authorizes students who have survey passcode and survey id

Out of many options to authorize students, I chose the simplest.
Rather than using CanCan or attaching a password to view the survey url,
my logic only creates a student if they have the survey id and passcode.
The teacher will provide these things to the student.

The main advantage was that it works with my models as they currently exist -
where students are a separate model from users. If this wasn't the case, then
authorizing students with a session and tying in CanCan would be better.