Fix getElementsByTagName to handle colon and more

Instead of relying on CSS selectors, this now implements the
matching as described by dom.spec.whatwg.org

Fixes https://github.com/Polymer/polymer/issues/468