Changed from using HTMLElement to Element for matches

Because
a) ie8 doesn't support HTMLElement
b) matches is defined on Element.prototype not on HTMLElelment.prototype

Also added p.matches as the preferred native method to use