refactor code to have more shared content, and avoid the module_build mantissa-loss failure
Update Changes & manual revbumps
v2.002001

 [00 Bugfix]
 - Use Module::Metadata to get Module::Build version ( avoid bugs with
   mantissa shortening in tests )
 - Refactor code to share more logic

 [Dependencies::Added / test requires]
 - Module::Metadata 1.000019
 - Path::Class::Dir 0.32
 - Path::Tiny 0.044
 - lib

 [Dependencies::Changed / build requires]
 - Module::Build 0.4008 → 0.4200

 [Dependencies::Changed / configure requires]
 - Module::Build 0.4008 → 0.4200

 [Dependencies::Changed / runtime requires]
 - Dist::Zilla::Plugin::PodWeaver 4.001 → 4.002
 - Dist::Zilla::Plugin::Test::Compile::PerFile 0.001000 → 0.001001
 - IO::Socket::SSL 1.956 → 1.960

 [Dependencies::Removed / test requires]
 - Module::Build 0.4008
 - Path::Class 0.32