Support for json-encoded strings for Dict field

This patch allows setting a json-encoded `dict` to Dict fields, e.g. via data attributes in workbench scenarios.

* Motivation: Dict field only allows setting `dict` instances or None. This makes integration and manual testing with workbench problematic, as fields of this type can't be set using XML format.
* Affected components: all XBlocks using `Dict` fields, backward compatible with existing setups.
* Affected users: all
* Testing guidelines: run unittests
* 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: Oct 21 (soft requirement to minimize code drift, we maintain it on the client fork in the meantime)
In Java, this would be `@XmlAttribute v @XmlType`. Would it make sense to borrow that nomenclature rather than this rather long one? (Or are there other examples from other languages which make good sense?) Since this will be fairly core for a long time, we should ensure we're comfortable with the flag.