Ensure profs can update predicted grades

@chcholman please put this code through its paces! I changed some routes, most notably removing new/create from grades so everything gets routed through edit/update regardless of whether a grade exists or not.

The url is now `/assignments/1/grade?student_id=1`. If there is no student ID, it should redirect back to the assignment show page. The other alternative I was considering was `/assignments/1/grades/1` (e.g. using the student ID instead of the grade ID) which I can implement if you prefer the student ID being part of the path instead of a query parameter.

Note that I'm not considering the situation where there are multiple grades for a student/assignment (e.g. if there are tasks or multiple submissions are allowed). However, I think this is the case throughout pretty much the whole app, so I think that's ok. Let me know if I've assumed incorrectly.