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.
When looking for something at the beginning or end of a string in
JavaScript, I try to reach for substring methods instead of regular
expressions, they're designed to be more efficient in cases like this.

What is the state of this `correctResponse` data? Will it always be some
value surrounded by `['']`? If so, we should just take a substring such
that it removes the first and last two characters (3rd below), string
splicing, basically.

I was curious to see how different substring removals stacked up
performance-wise, so I hacked up the following.

```javascript
var i;
var length = 100000000;
var string;

for (i = 0; i < length; i++ ) {
    string = "['test string']";

    string = string.replace(/(^\[\')|(\'\]$)/g, '');
}
```

```sh
node /tmp/test.js  13.88s user 0.06s system 100% cpu 13.858 total
```



```javascript
var i;
var length = 100000000;
var string;

for (i = 0; i < length; i++ ) {
    string = "['test string']";

    if (string.indexOf("['") === 0) {
        string = string.substring(2);
    }

    if (string.indexOf("']") === 0) {
        string = string.substring(0, string.length - 2);
    }
}
```

```sh
node /tmp/test.js  8.38s user 0.04s system 100% cpu 8.371 total
```


```javascript
var i;
var length = 100000000;
var string;

for (i = 0; i < length; i++ ) {
    string = "['test string']";

    string = string.substring(2, string.length - 2);
}
```

```sh
node /tmp/test.js  2.71s user 0.02s system 100% cpu 2.720 total
```