Implement AI grading task, database models, and API calls.

Still need to add tests for errors, but I'm going to merge this now so @gradyward can start work on TIM-561.