Make Runtime.service work properly in subclasses.

Service declarations weren't propagated down into subclasses.  This made
the whole thing useless, since in the LMS, all XBlocks are subclasses of
their supposed type, since they have had things mixed into them.

This also does a nicer job separating out the fixed XBlock concern (how
do block declare and store their service intentions) and the Runtime
concern (providing the service).

LMS-1562
Tweak pylint
Give Runtime implementations more control over how XBlocks classes are loaded from block_types

[LMS-48]
[LMS-181]
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.
Split UsageStore into separate interfaces for reading ids and creating them
:w
Give _EntryPointStub a dist attribute