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)
@dmitchell this came from a rebase today. I prefer human names as well.