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

[LMS-48]
[LMS-181]
Merge pull request #160 from cpennington/configurable-block-selection

Give Runtime implementations more control over how XBlocks classes are loaded from block_types
Move DictKeyValueStore from test.tools to xblock.runtime
Rename DbModel to KvsFieldData.
Make KvsFieldData work properly in multiple-inheritance uses.
Parents and children can't possibly have defaults

Don't bother looking for defaults for "parents" and "children".
Add a caching .get_parent() method to XBlock.
Clean up block creation and id generation
Give _EntryPointStub a dist attribute