Some random notes explaining design choices, in case we forget why we did things
a certain way :)

- Naming/tags

The reason KDOM::Element does not have a name data member is to be more flexible
for deriving classes and take minimal space. If we take the example of a
SVGRectElement, we know the tagName() will always be "rect", so we do not need
a name data member per SVGRectElement. In short, it is up to the deriving classes
to come up with the tagName implementation. In case it is known beforehand that
a tag is not "fixed" (for instance for xml elements), a NamedElement can be used.
Right now Document::createElement() will create NamedElement objects, whereas other
Documents may choose to create elements derived from KDOM::Element (this is what SVGDocument
does).


- getValueProperty/putValueProperty return values

Don't use "return Undefined()" because that will trigger a confussing debug message
in DOMBridge, instead use "return Value()", it doesn't matter doing this in call()
because it's usually legal to return an undefined value, but ... just don't do it :)

WARNING: rootElement not found in... Name: KSVG::SVGDocument Object: 0x3e0013f0 on line : 3
It cost me quite some time, to find out that the getValueProperty() call actually worked :)
