[server] refactor cleanup() code used by "cubicweb-ctl delete"
Try to make each logical step (i.e. "delete database" and "delete user")
a bit more visible and explicit.
This is a preparatory work to easily plug the "delete namespace" feature.
What's new in CubicWeb 3.20
===========================
New features
------------
* virtual relations: a new ComputedRelation class can be used in
schema.py; its `rule` attribute is an RQL snippet that defines the new
relation.
* computed attributes: an attribute can now be defined with a `formula`
argument (also an RQL snippet); it will be read-only, and updated
automatically.
Both of these features are described in `CWEP-002`_, and the updated
"Data model" chapter of the CubicWeb book.
* cubicweb-ctl plugins can use the ``cubicweb.utils.admincnx`` function
to get a Connection object from an instance name.
.. _CWEP-002: http://hg.logilab.org/review/cwep/file/tip/CWEP-002.rst
API Changes
-----------
* ``ucsvreader()`` and ``ucsvreader_pb()`` from the ``dataimport`` module have
2 new keyword arguments ``delimiter`` and ``quotechar`` to replace the
``separator`` and ``quote`` arguments respectively. This makes the API match
that of Python's ``csv.reader()``. The old arguments are still supported
though deprecated.
* the migration environment's ``remove_cube`` function is now called ``drop_cube``.
* cubicweb.old.css is now cubicweb.css. The previous "new"
cubicweb.css, along with its cubicweb.reset.css companion, have been
removed.
Deprecated Code Drops
----------------------
* most of 3.10 and 3.11 backward compat is gone; this includes:
- CtxComponent.box_action() and CtxComponent.build_link()
- cubicweb.devtools.htmlparser.XMLDemotingValidator
- various methods and properties on Entities, replaced by cw_edited and cw_attr_cache
- 'commit_event' method on hooks, replaced by 'postcommit_event'
- server.hook.set_operation(), replaced by Operation.get_instance(...).add_data()
- View.div_id(), View.div_class() and View.create_url()
- `*VComponent` classes
- in forms, Field.value() and Field.help() must take the form and the field itself as arguments
- form.render() must get `w` as a named argument, and renderer.render() must take `w` as first argument
- in breadcrumbs, the optional `recurs` argument must be a set, not False
- cubicweb.web.views.idownloadable.{download_box,IDownloadableLineView}
- primary views no longer have `render_entity_summary` and `summary` methods
- WFHistoryVComponent's `cell_call` method is replaced by `render_body`
- cubicweb.dataimport.ObjectStore.add(), replaced by create_entity
- ManageView.{folders,display_folders}