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"
test metadata and prerequisites directly
make is_yaml, is_json wrappers for Test::Deep::YAML and Test::Deep::JSON
use Test::Deep::JSON, Test::Deep::YAML as appropriate
switch all remaining uses of JSON.pm to JSON::MaybeXS