Extract common functionality to xblock-utils

I get what you mean. What I don't like is that the classes depend on an external variable, but it's the same for `logger`. Still, since it's something that belongs to the adventure package, I think it's okay.

If needed, you can still create a custom ResourceLoader whenever necessary, to load from another package for instance.