Deparse: Emit package before use

Prior to commit c310a5abf, ‘use’ statements in packages other than
main were emitted as BEGIN blocks, because the code that decides
whether BEGIN is actually ‘use’ was looking for "BEGIN", not
"Foo::BEGIN":

$ perl -MO=Deparse -e 'package foo; use overload'
package foo;
sub BEGIN {
    require overload;
    do {
        'overload'->import
    };
}
-e syntax OK

That changed inadvertently in v5.21.6-397-gc310a5a (Don’t deparse
BEGIN blocks as __ANON__), because B::Deparse now remembers the name
"BEGIN" for all BEGIN blocks, regardless of package.

That caused an existing bug to occur more often:

$ perl5.20.1 -MO=Deparse -e 'package foo; die; package main; use overload qr=>sub{die}'
package foo;
die;
use overload ('qr', sub {
    die;
}
);
-e syntax OK

Notice that there is no ‘package main’ anywhere.  (Just before c310a5a
the ‘package main’ would have appeared inside the anonymous sub.)

In c310a5a this started applying to packages other than main, with a
‘use’ statement just after the package declaration.

This commit fixes that by returning the ‘use’ statement only *after*
doing the check to see whether there was a package declaration, and by
including the package declaration in what is returned.