Core: switch to Lucene QueryRescorer

Simon started this with #6232 and I just simplified it a bit ...

One functional change I did was: if a first pass hit did not "participate" in rescoring (because it wasn't in the top window hits), I multiply its score by rescore.queryWeight() matching what we do when it did participate but the 2nd pass query didn't match it.  I'm not sure that's "correct" but I think it's "more correct" than just using the raw first pass score ...
FYI using `NOTE:` instead of `*Note:*` would make it an admonition paragraph, which is probably what you want? https://github.com/elasticsearch/docs#admonition-paragraphs