Add a BlockTypeKey class to capture block types and block families.

It isn't used by the .block_type attribute of other Key types, because
those types are already unambiguous. However, it will be used as the
block_type field passed as part of ScopeIds to XBlocks and XBlockAsides.
It'd be good to put some explanation of why we need this and how it sd be used. At least the explanation you have on the PR: to pass as the block_type to scope_ids so that (runtime | field_data | kvs) can treat xblocks and asides and other future things differently.