add a PkgVersion test for double-package files under die_on_line_insertion

This is a regression test which ensures that a caching issue within PPI
cannot cause PkgVersion to fail to find the empty line after the second
package line in a file with two packages. This does not currently fail,
but until PPI (currently 1.218) is fixed to calculate locations correctly
after a tree was changed, this can easily break with seemingly logical
changes in DZ; making this test valuable.
remove a line of dead code in PkgVersion
cache pkg line when looking for empty line after package in PkgVersion

This provides a measurable speed-up on dzil build on dzil itself.
stop search after having found all elements on after-pkg line in PkgVersion

This provides a measurable speed-up on dzil build on dzil itself.
don't slowly clone and prune in document_assigns_to_variable()

It is faster to skip END and DATA segments in this function than to clone
the document and prune it. I'm not sure if the order of the checks is
optimal. Putting the additional isa checks first might be faster. In any
case:

This provides a measurable speed-up on dzil build on dzil itself.
changelog for last few commits
print a recognizable success message when the build finishes

some builds print so many diagnostic statements that it's not very clear
whether the build halted midway or it was really successful -- so print
something obvious so we know for sure.
tweak invocant of "we built!" logging msg
Fix situation where ABSTRACT comment is empty

If you have the following line:
    # ABSTRACT:
Then you currently get the next line (following the ABSTRACT comment)
as the abstract.
I think the intention of the code was to not match at this point,
so the abstract would be extracted from the pod.
test for handling of empty ABSTRACT
changelog for ABSTRACT changes
set homepage through GithubMeta
use CPAN::Meta::Merge to preserve all meta fragments while merging

Conflicts:
	Changes
create Build.PL, Makefile.PL in filegatherer phase

This allows other plugins to not just see that this file exists (at early
phases such as file munging, and generate files accordingly -- e.g.
[InstallGuide]), but allow other plugins to add content earlier (e.g.
Devel::CheckLib). The template will be evaluated at the normal time, once the
prereq list is finalized.
changelog update
v5.022

        - several optimizations to how PPI is used
        - handle an empty ABSTRACT better
        - now properly merging distmeta fragments together without loss, using
          new CPAN::Meta::Merge
        - create Makefile.PL and Build.PL files earlier, so they're in the file
          list "the whole time"
DZ::Tester->from_config only accepts add_files entries with valid paths

Not all OSes have the same rules for what may be in a filename. By
round-tripping input from Unix to local to Unix and comparing the results
DZ::Tester now tries to determine whether a path is legal on the current
OS. This is not optimal, but works well enough to recognize some recently
introduced pathological cases.

Could maybe be made more strict by comparing whether the number of volume,
dirs, base entries in the objects is the same between all the participants.
skip testing files in plugins/manifest on windows that have illegal paths

Fixes the Win32 failures introduced by
e00f4ae1816ad5469318600bbd1e3b056badf9a5