Use low overhead object heritence in Js (Object.create vs new)

the use of

    XX.prototype = new YY();

Does trigger the constructor of YY without the nead for it. `Object.create`
does go around this limitation and target browser that are relatively Old.

Cf https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create

for more info

It might help to get rid of some logic in constructors that check wether some
options are passed in, that were causing errors on noteboko load.  Typically
`if(element){ }` on Abstract  `Cell` constructor.