Split/add and fixes

Are `version_agnostic` and `branch_agnostic` things we should be promoting up to the base `CourseKey` and `UsageKey` classes?