Course keys use key introspection

@brianhw, @watsonemily, @srpearce, and @stroilova, please review.
Question: is there an impact on CommentThread.commentable_id for
discussion threads?
So here you could call it "the type of key, including its implementation version."