Cache modules in split bulk ops
Add tests for Split course keys and CourseLocators
Cons up new dict to not hurt cached value