Improved getting of matchesSelector method

1. caches the prefixed method after the first time it is fetched
2. uses the standards compliant `matches` method where available