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 valid_types a list of tuples, or a dictionary? Because what you want here is probably a dictionary:
```python
response_type = valid_types.get(response.__class__.__name__, 'other')
```
But if valid_types is a list of tuples, you'll need to cast them into a dict first, which looks like this:
```python
valid_types_d = {}
valid_types_d.update(valid_types)
# or alternately, if you're feeling daring
valid_types = dict().update(valid_types)
```