RT #121990 DateTime/Date smartmatching
Support extended NFA cache API.

This supports Cursor optimizations recently made in NQP.
Oxford Commafication
mention a couple of minor changes in ChangeLog
Better handling of sink.

On MoarVM, this leads to a smaller QAST trees and much better code
generation. On JVM and Parrot, we get the first advantage, and we
could improve their code-gen in the future too. Note the Parrot bit
of this is untested due to being unable to build NQP Parrot on Win32
at present; the JVM patch worked right off, though, and there's very
little reason fro the Parrot one not to. Testing welcome.
Bump NQP revision for assorted improvements.
convert gen-cat.pl to nqp and use it
fix roadmap entry about label handling
Make Junction optimization less costly.

This refactor splits analysis and transform, decreasing the cost of
the common case when we just analyze and realise we're not looking
at a Junction.
Refactor visit_op in optimizer.

This not only makes it a good bit cleaner, but also reduces the cost.
Bump NQP_REVISION.
Optimize the optimizer somewhat.

Shaves about a third off its execution time.
Cheapen dynamic compilation somewhat.
Things with nested blocks are not inlinable.

There are ways to have nested blocks without a declaration being made;
anonymous subs and thunks are just two examples. This fixes an lvalue
subs regression.
Re-order to restore for 1..1000 {} optimization.

More inlining possibilities led to 1..1000 style things being turned
into code no longer recognized as a loop over a range, so we lost the
optimization. Move it to before any inlining attempts are made.
timotimo++ for spotting this optimization regression.
Forgot to visit children after range opt.
Make sure we precompile core modules with extension
Temp fix supporting loading .pm6 files as source
Almost complete refactor CompUnit and CURL::File

A CompUnit object now has always the source file as its "path", even if the
source file cannot be found.

CURL::File has been utterly simplified, as it turned to be impossible to
smartmatch finding files.  So now it only looks for the existence of the
file, and returns that.  Thanks to Scalar[0] indexing, this is compatible
with the API.
Bump NQP to get short-circuit fix