text: Title: Custom Components
  Body: Currently only the white listed set of components can be rendered, while we can and should extend that list, we should also allow custom components.
  
  The idea would be to define a component like 
  
  ```py
  class Custom(BaseModel):
      data: Any
      class_name: _class_name.ClassName = None
      sub_type: str = Field(serializeation_alias='subType')
      type: typing.Literal['Custom'] = 'Custom'
  ```
  
  `subType` let's implementing code do a nice switch thing when deciding how to render custom components.
  
  The default implementation should just show `data` as JSON with a message saying "not implemented".