Inline Analytics

  Display of answer distribution graphics inline on the problem page
  for instructors.

  Problem types supported for graphics:
    - MultipleChoiceResponse
    - ChoiceResponse

  Problem types supported for line item display:
    - OptionResponse
    - NumericalResponse
    - StringResponse
    - FormulaResponse
    via setting

Internal review only for now.
Is there a reason that these pieces of response_data need to be lists? Are their values ever mutated by the caller of get_response_data()? It doesn't look like it. And it looks like you take pains to keep the structure very regular. 

I'm wonder whether these can be namedtuples, too. Perhaps something like:
```AnalyticsContextResponse = namedtuple('AnalyticsContextResponse', 'id response type message')```
since that would seem to reflect how they're used.

I guess the question would be whether the analytics thing does tuple unpacking or subscripting, both of which will work fine, or if it assumes it's getting a list and tries to do something silly like concatenation with them. I'd be inclined to try it and see what happens, but suit yourself.