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. 

Well I have think again about this. 

For me, the css flag could represent two things:
-exclusive mode
-present/absent option but it's a particular case of a mode with two possibilities

Because, these two possibles representation can be view as the same in fact it is possible to manage them with a single setter function, a single initializer etc .... the list notation you propose, make code two different api, one for modal and one for optionnal.

metadata.csstag{
option: [options1, option2, ...option3]
mode: 'my_super_mode'
}

I would need two API to manage it.