language changes: no more Box cross borrowing, some deprecations.

also changes `--cfg subprogram` to the default.
use `--cfg no_subprogram` to explicitly disable the subprogram.