TemplateBinding changes to support Observable interface change

Template now ensures that Node.bind() receives an observable. If a binding delegate has returned an observable, it uses that. Otherwise it creates a PathObserver.

R=arv@chromium.org, arv
BUG=

Review URL: https://codereview.appspot.com/40550043