The bulk of the implementation is common between 'release' mode (==AOT-ed
model) and 'development' mode (for training), the main difference is
that in development mode, we may also log features (for training logs),
inject scoring information (currently after the Virtual Register
Rewriter) and then produce the log file.
This patch also introduces the score injection pass, 'Register
Allocation Pass Scoring', which is trivially just logging the score in
development mode.
I was torn between lumping this in here and separating it out - it's simple... but then it adds like 4 additional trivial test file changes, plus the headers.
Happy to peel it off in a separate change.