Optimize Chrome::Term initial loading

Load the following modules only when used:
- Term::ReadKey
- Term::ReadLine (and its dependencies such as Term::ReadLine::Gnu)
- Term::UI
- Encode
This optimizes runtime for most use cases (DZ commands that do not
require user interaction).
Optimize Dist::Zilla::Util startup

Load Pod::Eventual at runtime only if abstract_from_file is used.
This improves 'dzil authordeps' speed.
DZ::App: don't load Path::Class (not used here)
DZ:Util: load Path::Class and File::HomeDir on demand

In Dist::Zilla::Util, load Path::Class and File::HomeDir only when
_global_config_root is called.
DZ:A:C:new: don't load Path::Class (not used here)
DZ:A:C:setup: don't load Path::Class (not used here)
DZ:A:C:authordeps: load Path::Class only when used
Add a before_release check for missing credentials
Also abort if 0-length username/password

  Mention prompting behavior in docs
Add tests for UploadToCPAN
Use Test::Fatal in fakerelease.t

With Try::Tiny, if the code fails to die as expected, the catch block is never
executed and the test is just skipped (instead of failing as it should).  Since
there's no plan, the test script gets a PASS.  You're unlikely to notice that
it didn't run as many tests as it should.
Add extra_scanners & scanners to AutoPrereqs
Filter minimum perl version out of $build_prereq

  MakeMaker doesn't understand it
  When setting $perl_prereq, look in both runtime requires and build requires.
Test that minimum Perl version is pruned correctly
Increment Test::Builder::Level in test functions

Failures should report the line number in the test script,
not in Test::DZil.
is_filelist accepts Dist::Zilla::Role::File objects
Add FileFinder::ByName and ffbyname.t
More tests for FileFinder::ByName
do some obsessive formatting tweaking
(Thanks, Christopher J. Madsen!)