Fix performance regression

Remove course_from_id
don't fetch whole course when the root will do
don't fetch even the root if the id will do

@chrisndodge @dianakhuang @sarina @nasthagiri some subset of you, please review

Curious question: pylint complaints about doing the .org, .course, .run stuff on these (e.g. E1101 "Instance of 'SlashSeparatedCourseKey' has no 'run' member").  I guess this is because we're loading the key classes in dynamically?  Should we just do a pylint disable for these sorts of things, or am I missing something?