Refactor template bootstrapping.

There were a couple of motivations here:

1) The was a bug where the content property wasn't added to semantic template elements if the template element was supported natively.
2) There was no support for mixing native and semantic templates (e.g. <template iterate><tr><td template iterate>).
3) The bootstrap logic was recursive in multiple dimensions.

This patch refactors the bootstrapping code so that:
-recursing only happens through via bootstrapTemplatesRecursivelyFrom()
-Template.createInstance(opt_model, opt_modelDelegate) is exposed as public API and used internally for iterate/instantiate
-Template instances containing templates do not clone inner template content, but make a transparent "ref" from the clone to the source, and this is encapsulated within Template.ref() (the ref attribute takes precedence over the transparent interal ref).
-Adds a test for the mixed native/semantic case

BUG=None

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