Optimize dom parsers based on html and browser support
Optimize dom parsers based on html and browser support

Cache the three parsers and figure out which one to use based on
the HTML provided (e.g, no high-level elements means the template
parser should be used).

The parsers have also been modified to be compatible as fallbacks
with one another. The order is determined based on its performance.

Performance ranking (based on Chrome benchmarks):
1. template parser (fastest)
2. implementation parser (fair)
3. DOM parser (slowest)

remarkablemark/html-dom-parser,remarkablemark/html-dom-parser,remarkablemark/html-dom-parser,remarkablemark/html-dom-parser