Provide a path for default xml to load upon creation.

I had to get a bit more clever here and abstract away getting the xml content's data via a function and make sure it was consistently used.
@antoviaque , Adventure is doing this the standard way-- by using the default keyword. The only reason I have to do what I'm doing is because I need access to the fields, which are only available after instantiation. The adventure xblock is using the standard way of providing the default data. It is the way this should be done, if at all possible. I'm having to jump abstraction layers in order to use those other fields.

The change to allow callables won't fix this either, because at the time of definition, there won't be an instance available-- we haven't even finished constructing the class yet. So we could only pass class methods, and not bound instance methods. The data in the fields that this default XML needs, therefore, would be unavailable.