templates: fix code generation for expressions for observe() callback.
fixes #258
Avoid spurious fetch of illegal URL during template parsing.

Happens from template code like <img src={{foo}}>, which causes a GET of "{{foo}}",
at least on Chrome.

Fixes #260.
Refactor template.js into a class.

Note that this renames template.js to Template.js, which may cause some confusion
on case insensitive filesystems.
Defer setting non-boilerplate template node values until widget properties are available.

For example, for a template like <button type=button class={{myClass}}>{{myLabel}}</button>,
"type" will be set in buildRendering() but "class" and the the label won't be set until refreshRendering().
This is regardless of whether or not the app overrides the default values for myClass and myLabel.

Avoids errors referencing nested properties (ex: item.foo.bar) when item.foo isn't defined
yet when buildRendering() runs.

Will probably require some updates to deliteful test files (and possibly code) which assumes
that the default values are filled in by the time buildRendering() completes.

Fixes ibm-js/deliteful#249.
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 usage