CLC-2498 Untangle My Classes and My Groups sites implementation

Early in the project, My Groups functionality was described as dependent on the My Classes feed. Partly as a result, our site feed implementation became a huge tangle, with multiple circular dependencies between "higher level" models and "lower level" lib code. This has made it difficult to show course site associations in the My Academics feed.

Undoing a huge tangle means doing a huge PR. Sorry, but everything was so coupled together that I couldn't find a safe way to break it up.

This new approach keeps dependencies flowing downward. My Classes and My Groups have been restructured into modules to clarify relationships. My Activities' dependency on Classes and Groups has been made explicit. "Sakai"-branded lib code now only deals with Sakai; "Canvas"-branded lib code only deals with Canvas. And we should now be in good shape to include site links in the academics feed and in bCourses Course Provisioning.