Don’t deparse BEGIN blocks as __ANON__

There are various ways in which the *BEGIN glob could be freed, caus-
ing the BEGIN block to become anonymised.  E.g., it can happen if a
*BEGIN rv2gv op is created and freed at compile time.  (This commit
deletes it more explicitly in Deparse.t, to make the test robust.)
And the BEGIN block’s relationship to the typeglob it started out in
is only incidental once it has been detached.  So for special blocks
we should be deciding the name based on which array (beginav, etc.) we
got it from, and not using the name of the glob the sub points to.
Extend read-only ops to most special blocks

We can’t do BEGIN blocks easily because they are freed by the time
we make the ops read-only, but there is no reason to skip other spec-
ial blocks.