Shuffle feature for multiple choice questions

Adds studio and lms support for an option to shuffle
the displayed order of multiple choice questions.
Works by shuffling the xml tree nodes in the problem
during the get_html process. The shuffling uses the problem's seed.
The added syntax for the xml and markdown is documented in the Changelog.
Move shuffle code capa/responsetypes.py

Also moved the shuffling up in time, so the choice_0
numbering is based on the shuffled order.
WIP Everything uses the shuffled order.

Translating back to the "native" ordering
for logging is TBD.
WIP de-shuffle choice names for logging
WIP also record shuffle_order in event_info
WIP oops, fix non-shuffled case
WIP, making name= case work, not done yet
Refactor so masking and shuffling are separate
WIP pep8
WIP merged in latest master
Cherry picking Jeff's stuff over to the shuffle branch.
Cherry-pick Jeff's features over to shuffle-question
WIP fixup of Jeff stuff import