Fix possible double import of cubes modules
When cubes using the new layout are imported with 'cubicweb_<cube>' and with
'cubes.<cube>', the same module is imported twice.
Handle this by adding 'cubes.<cube>' to sys.modules when importing from
'cubicweb_<cube>'.
Move load_module() to a sub class _CubesLoader to share informations computed
in find_modules().
Don't handle subpackages in _CubesImporter and rely on normal import machinery
instead.
Add a test and use unittest from cubicweb.devtools.testlib which resolve to
unittest2 on PY2 with assertLogs() method.
.. _pre_defined_entity_types:
Pre-defined entities in the library
-----------------------------------
The library defines a set of entity schemas that are required by the system
or commonly used in *CubicWeb* instances.
Entity types used to store the schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* _`CWEType`, entity type
* _`CWRType`, relation type
* _`CWRelation`, relation definition
* _`CWAttribute`, attribute relation definition
* _`CWConstraint`, `CWConstraintType`, `RQLExpression`
Entity types used to manage users and permissions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* _`CWUser`, system users
* _`CWGroup`, users groups
Entity types used to manage workflows
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* :ref:`Workflow <Workflow>`, workflow entity, linked to some entity types which may use this workflow
* _`State`, workflow state
* _`Transition`, workflow transition
* _`TrInfo`, record of a transition trafic for an entity
Other entity types
~~~~~~~~~~~~~~~~~~
* _`CWCache`, cache entities used to improve performances
* _`CWProperty`, used to configure the instance
* _`EmailAddress`, email address, used by the system to send notifications
to the users and also used by others optionnals schemas
* _`Bookmark`, an entity type used to allow a user to customize his links within
the instance
* _`ExternalUri`, used for semantic web site to indicate that an entity is the
same as another from an external site