Bug 837836 - Lazy init template nodes

This patch provides an interface (App.Template) to access DOM nodes. It does less work on startup, and should be an easy interface to use should we decide to lazy-load the DOM later.