A custom entity for fieldable many to many relations.
1. A general translatable, bundleable, revisionable relation entity with slots n_target_id and m_target_id.
2. A selection field or widget which is automatically made available on the target entities. Probably two widgets are needed, a compact one, and one for long lists that works like views bulk operations.
3. Various views classes to handle the relations, etc.