Initial port of classic QueryParser. Broken.

Gets stuck in infinite loop if you search with the default field. If
searching with a field specified or the *:* query, it errors out.