Make course id selection on registration a text field instead of dropdown

Changed the course ID field in the registration process to be a text field instead of a dropdown list of all the courses.  

This includes a new validator class in db.py to handle the friendly `courses.course_id` specifier (instead of having to enter the `course.id` value) to specify a course.