Revert back to using recursive calls.

It's actually faster in Chrome and Firefox and negligible in IE. This is the same method that Polymer and X-Tags currently use as well when traversing a DOM tree. The alternative is to use document.createTreeWalker() which is slightly slower, but doesn't generate a large call stack. That said, it's very unlikely that it elements will be so deeply nested that it causes a stack overflow. Famous last words. If it ever happens, we can use the tree walker. Until then the code is a bit cleaner and faster.