Move logging stmt up so the rest of my changes are co-linear.
Make PkgVersion get along with perlcritic's .../RequireUseStrict.

The old code inserted the version statement immediately after the
package statement, causing perlcritic's RequireUseStrict module to
complain about code occurring before strict was enabled.  This changes
where PkgVersion inserts the code fragment containing the version
declaration.

After finding a package statement it walks forward across any
PPI::Statement::Include elements (use, require, etc...) and inserts
the version statement after them.  This gives Moo{,se} and similar
packages a chance to enable strict.

After walking past the ...::Include statements it moves the insertion
point a bit further forward so that it ends up past the end of the
current line but before any significant statements.  This avoids
tearing comments away from their statements but keeps something like
this:

  use Moose; my $x = 1;

from causing problems.

The insert_after methods in PPI's PPI::Node (used to represent
white space, comments) and PPI::Statement classes differ in what types
of objects they will insert; Node is only willing to insert
PPI::Structure elements and Statement is only willing to insert
PPI::Statement elements.  After creating a small PPI document
representing the version statement we extract the appropriate element
depending on where the insertion landed.

Depending on the insertion location it may be cosmetically convenient
to insert an extra carriage return.

A separate set of tests is included.
Trim extraneous newline from version doc source.

Trim the newline off of the code fragment that's converted into the
PPI document that is the source of the Statement/Structure that is
inserted into the parent document.  The newline is unused (it ends up
in a different part of the PPI version document) and can be a bit
confusing when trying to figure out where the newlines in the output
document originate.

In other words, it's useless and slightly confusing.  Get rid of
it....