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 with `getSections` can we pass in an object that contains all these values instead? Right now it's hard to know what they all mean.

e.g.
```
getSections({
  isAdmin: false
  ...
```