XBlock argument passing support

@nedbat Quick review? 

This is a port of https://github.com/edx/xblock-sdk/pull/18/files

It adds a minimal XBlock (ProfileXBlock) which is helpful for manual testing of this functionality, and when we finish it, pyfs. That block is not production-ready, but I'd also like to give a demo of this XBlock internally, and this gets it onto edge.edx.org, killing two birds with one stone. 
Would this be cleaner by doing something like:

    args = getattr(frag, 'json_init_args', None)
    template_context['js_init_parameters'] = json.dumps(args) if args is not None else ''