2096: new language list display

Created a function that inputs a video and determines how we should
display it on the left side.  This code is semi-complicated, so it
seems better to have it in the view module than in template code.
Especially because that means we can write tests for it more easily.
Cache if we have timing info for a language.

This requires fetching the subtitle data, and we do it for each
language of a video on the video page.  Seems like a good policy to
cache it.

Added a basic foundation for caching data for a language.
2096: improvements to the language list

Added "needs approval" tag.  Added pipe between multiple tags.

Refactored the function into a class since it's getting a bit
complicated now.
Merge pull request #153 from pculture/x-2096

X 2096