C 1.47_01: prepare testcase for t/issue348.t

also a fix, but the fix is not working yet with default,
only with -fwalkall.
C: make -fwalkall the new default. fixes #348

Fixes missing dumped method-only packages.  The order of walking the
packages shalt not influence which packages will not be dumped, when a
dependency gets added later and the package was already marked for deletion.
We don't delete user packages anymore, so we need to walk all of them
exhaustively.

Always save all user-loaded packages. Skip only compiler-loaded packages if
not used by user code.  The compiler loads and dumps now additionally only
the heavy parts for utf8 and bytes, and utf8 for m///i, and AnyDBM for
dbmopen, PerlIO::Scalar for __DATA__ handles, and Coro::State::_jit if
required, but nothing else.
C 1.47_03: revised walkall, dump_rest at inc_cleanup

make -fwalkall the new default. fixes #348

Fixes missing dumped method-only packages.  The order of walking the
packages shalt not influence which packages will not be dumped, when a
dependency gets added later and the package was already marked for deletion.
We don't delete user packages anymore, so we need to walk all of them
exhaustively.

Always save all user-loaded packages. Skip only compiler-loaded packages if
not used by user code.  The compiler loads and dumps now additionally only
the heavy parts for utf8 and bytes, and utf8 for m///i, and AnyDBM for
dbmopen, PerlIO::Scalar for __DATA__ handles, and Coro::State::_jit if
required, but nothing else.

dump_rest no require, shorten @ISA printer, sv_objcount
declare our own sv_objcount, removed now in blead with 5.21.1

initialize all external packages from %INC to be dumped.
do not recursively walkall in descend_mark_unused, rather
repeat dumping all missing packages in inc_cleanup.

mark external packages in should_save
see testcase 348. we need not only to consider Foo, we need to mark it, because
it is external (not a B::C dep) it is there for a reason.
likewise change the logic not to include interim packages
only for internal packages: no B if needed for B::OP only (questionable also)

protect walk_syms: only if not already dumped
t/issue350.t: add simple moose testcase for #350

and also document the existing moose benchmarking test
t/CORE/mro/next_edgecases.t: fix wrong usage of constant string with Sub::Name

Sub::Name changes the string argument, which will fail with constant strings
in perlcc -O3 and embedders. Sub::Name really needs to return a copy then.
See https://code.google.com/p/perl-compiler/issues/detail?id=345
C: special-case XS load Moose
Merge branch 'walkall'

Tested ok