Give Runtime implementations more control over how XBlocks classes are loaded from block_types

[LMS-48]
[LMS-181]