Allowed List and Dict field to coerce values from JSON or literals.

XBlock should attempt to load JSON or Python literals for strings when dealing with Lists and Dictionaries. This is especially true because `XBlock.add_xml_to_node` serializes Dicts and Lists by stringifying them, making them importable by `ast.literal_eval`, but at the moment the Fields do not support this.

This pull request adds this functionality, as well as allowing someone to use JSON as well, since that's what the fields are stored in, and it makes intuitive sense that if someone were trying to create a scenario in the SDK, they could put JSON in the relevant attribute.

* Partner information: 3rd party-hosted open edX instance, for an edX solutions client (so will need to get some sort of solution merged in)
* Merge deadline: Dec 11th (soft requirement to minimize code drift, we maintain it on the client fork in the meantime)