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.
Move MemoryUsageStore to xblock.runtime
Implement get_block uniformly on core Runtime.

Once we have usage_store as a member of Runtime, we should use it to
implement get_block.
MemoryUsageStore now makes slightly nicer ids.
Runtimes have a .user_id attribute

Though some runtimes won't be specific to a user, runtimes construct
ScopeIds, which has a user_id, so the Runtime needs a user_id.
Create specific exceptions for runtime finders to raise when not found.
create_definition now takes a slug that can be incorporated into the created id.
Make load_class an overridable method on runtime.
Split UsageStore into separate interfaces for reading ids and creating them
Give _EntryPointStub a dist attribute