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.
Ah. When BlockTypeKeyV2 rolls around, BlockTypeKeyV1s will still be parsed as V1s