Do less work when initially parsing selectors.

Previously, selectors were fully parsed twice: once during the initial
document parse, and again once interpolation had been resolved. This
meant that a considerable amount of extra work was expended during the
initial parse, and selector interpolation had to be manually encoded
in the parse functions.

Now selectors are initially parsed very generously, just extracting
interpolation and verifying that parentheses are balanced. This has
the positive side effect of dramatically reducing the amount of
backtracking that has to be done when parsing nested selectors.
Move selector-parsing methods from Parser to StaticParser.
Merge branch 'quick-selector-parse'