Also, I'm nervous about values other than the exact strings "true" and "false", perhaps we want something more like:

```python
try:
    is_correct = lower(choice.get('correct', 'false')) == 'true'
except TypeError:
    # log a warning
    is_correct = False

if is_correct:
    correct_choices.append(choice)
else:
    incorrect_choices.append(choice)
```

It is not clear in the code as written what happens in the following cases:

* correct attribute is not provided
* correct attribute has a funky-cased value - False, false, faLsE, etc
* correct attribute has a non-python-boolean value - yes, 0, 1, no, etc

There may already be a robust boolean parsing function for edxml somewhere else, @cpennington - do you know of anything like this?