CLC-3682 - Use new webcast warehouse API for feed.

Substantially refactor the Mediacasts code and improve performance by caching a hash of all playlists and using hash lookup instead of looping. Also, renamed controller, routes, and models to indicate that mediacasts belong to courses (not to individual users, as the "My" terminology suggested). 

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