Protect Attr.Querier against E_Type cycles

- Break E_Type cycles in `Attrs_Transitive`.

  * Factor `Attrs_Transitive` to new class `_Base_`.

  * Move `_attrs_transitive` from `_Type_` to `_Composite_`; factor
    commonalities from `_attrs_transitive` and `E_Type.Attrs_Transitive`
    into `_Container_._attrs_transitive`.

  * Add `seen_etypes` to `_attrs_transitive` to break E_Type cycles.

    - Up to now, an attribute of type `MOM.Attr.A_Id_Entity` referring to
      the E_Type containing the attribute in question resulted in a cycle
      that broke `Attrs_Transitive` with::

        RuntimeError: maximum recursion depth exceeded ...

- Break E_Type cycles in `As_Json_Cargo` and `As_Template_Elem` by
  factoring `_as_json_cargo` and `_as_template_elem` with argument
  `seen_etypes`.