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}}.
Avoid common CSS classes to be included in all widget CSS file (Fixes #264).
Remove DnD CSS files (Fixes #245).
focus.js: avoid spurious exception and remove some unused code.
fix popup.js issues, including fact that widgets no longer have methods like onChange
Rewrite HasDropDown code to use promises, and also to eliminate race conditions
between mouseup/keyup vs. when the popup completes loading.

This preserves the mousedown --> slide over menu --> mouseup code path for
quickly selecting a choice in a drop down menu, although it's debatable whether
or not we want to keep that code in the final release.
convert HasDropDown test to functional test and expand test
Fix misbehavior when using delite/popup with delite/focus for widgets with no id.
Fixes #267.
fix jshint
first commit for review from bill, to show content node usage in templates
fix 'static' _shadowHostNodes property and instatiate it instead
updated after further conversations with bill, still a work in progress.

 -  added a 'template-content' conditional to handlebars to return an alternate AST
 -  parse the 'content' AST tag in Template and return the compiled 'contentNodes'
 -  updated Widget to parse the 'contentNodes' appropriately for 'select' nodes (and for 'universal' selector nodes)
 -  updated the example test to show declarative and programmatic usage
updated after comments from bill re cleaning up code forEach/map, _parseContentNodes & not bypassing handlebars.parse code