CLC-4478 - Official Sections: As an Instructor, I want to be able to edit official sections

Contains changes related to:

CLC-4525 - Official Sections: Refactor business logic shared between LTI tools
https://jira.ets.berkeley.edu/jira/browse/CLC-4525

CLC-4526 - Official Sections: Create Course Info API end-point
https://jira.ets.berkeley.edu/jira/browse/CLC-4526

CLC-4534 - Official Sections: Add course info option to course provisioning data feed
https://jira.ets.berkeley.edu/jira/browse/CLC-4534
@redconfetti why do we need the `catch` here? Wouldn't it be better to handle the error in the controller?