Make CourseKeyField stricter

Puts a strict enforcement on "we should ONLY be passing in SlashCourseKeys and we should ONLY be pulling strings from the DB."

This will cause several hundred assertion errors.  I'm so sorry.

"Your pain is the breaking of the shell that encloses your abstraction"
Merge pull request #3008 from edx/flowerhack/opaque

Make CourseKeyField stricter