Metadata tagging general tool AND csstag usecase 


### The purposes of this pull request (high priority first):

- provide a general API for metadata tagging linked with DOM class tagging
- specify an API for a particular usecase namely csstag
- a minimalist clean of create_element hierarchy, because I have needed it

### Details:

To provide an API in all kind of cell I've had to work in Cell class, but originatly, this class doesn't provide any DOM element, specificaly not the base div element of the cell. So I ve moved a bit the design of create element (produce no change at all in the DOM, at any stage).

Then, I code two general functions able to handle  synchrone metadata tag and class tag in DOM.

Eventually, I propose an API for class tagging, in order to perform notebook layout using only css selectors and class tagging. In my mind, there is only need to tag the base <div> of the cell, css selectors job is to track subelement and apply rules. 

A fixe prefix in class name, is, in my mind, for a single usecase (here csstag class). But this tool is customizable for other purpose: maybe it is usefull for some extension which doesn't want to be mixed with others ...

the function add_tag is design for thihs general purpose, where set_csstag embed the fixe prefix as you said. I can change it into ``jupyter-`` not a problem