Add more documentation about AQ expressions
Add `mm_dict_mm_dict`
Improve auto-derived associations of partial roles

* Make `m_create_role_children` lazy, so that it catches all derived
  classes.

  Before this change, the effect depended on import order and
  therefore was quite fragile (and hard to understand).

* Add `auto_derive_np_kw` to allow parameterization of auto-derived
  associations instead of requiring manual redefinition.

  Before this change, it was impossible to define a descendent of the
  auto-derived `Subject_has_Address` for one specific descendent of
  `Subject` that defined `left.max_links = 1`.

  In addition, this change saves a lot of boilerplate.

* Fix some bugs.
Add `refuse_e_types` for id-entity attributes

By adding type-names to `refuse_e_types` of an id-entity attribute, one
can exclude those e-types from being used for that attribute, even
though they are subclasses of the attributes `P_Type`. Adding a
type-name to `allow_e_types` lets you allow a specific descendent of a
type listed in `refuse_e_types`.