Rearchitect how class={{xyz}} is handled in templates,
and also how class is handled when specified for programmatic creation
like new MyWidget({className: "foo"}).

On the first refreshRendering(), it will add this.xyz to the specified
node's class list, rather than overwriting its class list completely.
Further, if the user changes the value of xyz from "foo" to "bar",
it will do a removeClass("foo") and addClass("bar"), rather than just
setting the class attribute directly.

Solves the problem with baseClass and d-rtl getting overwritten,
and also the problem with user defined classes getting overwritten.

Adds setClassComponent() method to Widget to set part of a class string
without interfering with the other parts.

Also moves setting baseClass and d-rtl classes from Widget#attachedCallback()
to Widget#refreshRendering().

Fixes #263 etc.

PS: If we later decide that this behavior is too magical, we can enable it through a different
attribute name, for example:  append-class={{xyz}}.