Prune some .gitignore files.

Class::ISA was removed by 3df51b85ce4a5664 in April 2010.
Module::Pluggable was removed by commit 482cac4d574f8c6c in May 2013.
Module/Build/ConfigData.pm was moved from lib/ to cpan/ by commit
0b93a7997e668a67 in Nov 2009.
Pod::Plainer was removed by commit afbe215fcafe7a92 in April 2010.
Shell was removed by commit a1e75797c204ade8 in June 2011.
Switch was removed by commit 75108aefc8b50fcf in April 2010.
Make .gitignore and lib/.gitignore more consistent.

Move the ignore of lib/App/, lib/mro.pm, lib/TAP/, lib/Test/Harness.pm,
lib/File/DosGlob.pm, lib/inc/, Win32.pm, Win32API/ and Win32Core.pm from
.gitignore to lib/.gitignore, where they more logically belong.
Consistently use trailing / for ignored directories.
Add a leading / to the ignore of unicore/TestProp.pl
(The line was added by commit 3df51b85ce4a5664 in Nov 2009, and it's not
clear why it did not have a leading / from the start.)

Re-sort lib/.gitignore lexically.
Move all the "special case" build products from lib/.gitignore to .gitignore

These are all the build products that we can't programmatically infer will be
generated from extensions in ext, dist and cpan.
Generate lib/.gitignore from MANIFEST.

It's possible to programmatically determine almost all the files and
directories which will be created in lib/ by building the extensions.
Hence add a new script regen/lib_cleanup.pl to do this.

This saves having to manually update lib/.gitignore to reflect changes in
the build products of extensions, which has become a small but reoccurring
instance of scut-work.
Remove 3 redundant lines from .gitignore

These test files are no longer generated in directories beneath lib/