Wrap subs in a NQPRoutine code object when NQPRoutine is in scope.

We need this to fix BEGIN blocks.
Revert "Wrap subs in a NQPRoutine code object when NQPRoutine is in scope."
This causes fails on the JVM.

This reverts commit 3890c61eda8d3c1a7c0f59147015a7b60fa0fc86.
nqp::readlinefh should never return null.

Resolves 5 of the NullPointerException aborts in the Rakudo spectests,
leading to 4 of the affected files now passing in full.
nqp::where should not decontainerize.

This fixes the last two aborts due to NullPointerException in the
Rakudo spectest.
Wrap subs in a NQPRoutine code object when NQPRoutine is in scope.

We need capturelex to get that to work properly.
I's a port of p6capturelex that takes the code objects type as an argument rather than assuming it's a Rakudo Code.
We also add a test that ensures subs are wrapped in codeobjects.
Fix BEGIN blocks, they get outer lexicals and can return a value. Add a test.