distinguish FINAL phase from CHECK phase

CHECK phase is always after the parsing of the current compilation
unit.  FINAL phase is after the main application's CHECK phase,
when the application as a whole commits to optimization policies.
In other words, a FINAL block defined in a module is not run when the
module is compiled (that would be a CHECK instead), but rather when the
application using the module is completing its compilation and linking.