Merge pull request #2515 from raydavis/raywip

CLC-3725 "GPA Calculator" UX as final-grades viewer for past terms
CLC-3748 Start caching person attributes from campus DB
CLC-3682 - Use new webcast warehouse API for feed.

Squashed commit of the following:

commit 4932913b9a56ca5b503dfc0d48aa763729168c91
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Thu May 15 09:57:09 2014 -0700

    CLC-3682 Update cache key

commit 2e7c6c123bed6b6dcd2bd57d3072eb18a7ee7131
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Thu May 15 09:53:06 2014 -0700

    CLC-3682 Tweak code layout and privacy

commit 4c169dad9af6b116b95c4b5a0a1c053303c55695
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Thu May 15 09:40:16 2014 -0700

    CLC-3682 Rename MyMediaController to MediacastsController in code, and change its routing

commit 77f1b8a2da0de14154a24f04d6a036676848b2d8
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Thu May 15 09:38:47 2014 -0700

    CLC-3682 Rename MyMediaController to MediacastsController

commit 3f57b31c9158aeeb706a38c0cb6524b568f94d0b
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Thu May 15 09:36:42 2014 -0700

    CLC-3682 Streamline how CourseMedia gets set up

commit 9983b86f8785b9ed9f2dd29910318a35f79e664f
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Thu May 15 09:26:53 2014 -0700

    CLC-3682 Renaming mediacast classes in code

commit 3befd6560c6cc2c21b201a177a43cf2ee1abb91d
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Thu May 15 09:23:06 2014 -0700

    CLC-3682 Rename mediacast files

commit 7ce571f23c9a2fe9822550d831f4c82c8fd5ae5c
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Thu May 15 09:20:45 2014 -0700

    CLC-3682 Move playlist retrieval into MyMedia, delete CoursePlaylists

commit 31c32210043fde7c45ad05fb3e491f5594ae33bb
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Wed May 14 16:24:42 2014 -0700

    CLC-3682 Report missing podcasts/webcasts accurately

commit c7fe5acfc60a0d0109d81c57ede5188aacaf0cdb
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Wed May 14 16:04:12 2014 -0700

    CLC-3682 Update client-side code to call media API with new course ID format

commit 79f9dbacadd084017d1fcad78c4bc56cc1d3b8ed
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Wed May 14 15:46:08 2014 -0700

    CLC-3682 Pass course ID from controller through to playlist model layer

commit f42159b792870b1264dacf274ea874e3b2bd9e3c
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Wed May 14 13:40:19 2014 -0700

    CLC-3682 Remove unused controllers

commit f000646fdc3f2ec9c864f447497d450eb4ca2217
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Wed May 14 13:15:04 2014 -0700

    CLC-3682 New dummy webcasts.json and updated field names

commit b1813f7764944cdf85c42b28902dea816dd7bb76
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Wed May 14 10:27:06 2014 -0700

    CLC-3682 Make all-playlist lookup more efficient with a hash

commit ae1c8846942970a36db51d5ac56418d23a00ea23
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Wed May 14 09:49:25 2014 -0700

    CLC-3682 Use dept and catalogID instead of CCN for course matching

commit 10a0ea81d1cb51278102c6653116218a024a896d
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Mon May 12 16:43:34 2014 -0700

    CLC-3682 Use Settings.playlists_warehouse_proxy to maintain backward compatibility with the old playlist proxy for the time being

commit b5e58e5c30becad32a8dba0778b4c7d2ce87dba8
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Mon May 12 16:23:41 2014 -0700

    CLC-3682 Fetch the all-playlist endpoint and cache it, separately from the playlist data for each individual course

commit 0e1f3b47b6fc4b2f85709124eb6f6dc6cb82c7cc
Author: Chris Tweney <chris@media.berkeley.edu>
Date:   Mon May 12 14:46:41 2014 -0700

    CLC-3682 Use new webcasts API for Playlists proxy
CLC-3682 encodeUriComponent to prevent recurrence of CLC-3047
Merge pull request #2516 from ctweney/clc-3682-squash

CLC-3682 - Use new webcast warehouse API for feed.
CLC-3682 Followup: Add a fake MALAY/I webcast entry
Merge pull request #2517 from raydavis/person

CLC-3748 Start caching person attributes from campus DB
Merge pull request #2518 from ctweney/clc-3682-followup

CLC-3682 Followup: Add a fake MALAY/I webcast entry
CLC-3722 Update FinAid transition date DB through Spring 2021