Adds support for passing JSON parameters to initialize XBlock

This allows this XBlock initialization to pass a JSON argument from Python to JavaScript. This eliminates lots of template hacks getting data into XBlocks. 

There is a matching commit in the XBlock repo. 

@cpennington @rocha 
I find it more readable to do:

```
html = u"<div class='xblock' {properties}>{body}{js}</div>".format(
    properties="".join(" data-%s='%s'" % item for item in data.items() ),
    body=frag.body_html(),
    js=json_init
)
```