move factory / default fields of BlockOptions to an inner Meta class, so that we can define StructBlock / StreamBlock child blocks by subclassing without colliding with those names. Also fix silly bug in class-to-instance casting
Allow specific StructBlocks to be defined by subclassing
Allow specific StreamBlocks to be defined by subclassing