Changed http_download_dirlist() to display content in addition to headers.
Added cool BUGALERT feature request to add a cool progress bar.
Moved vmsg to after to operation for less confusing debugging.

This commit also fixes a silly copy and paste typo.
Fixed vmsg reference typo regarding .
Refactored cmd_list() test to use print_ok().
Fix confusing subroutine call in t/bin-fetchware-clean.t
Fixed missing regex bug in cmd_look() test.
Added new fork_ok() testing subroutine to Test::Fetchware.

t/bin-fetchware-run.t needs to fork, because run(), which the file tests,
calls exit, because doing so makes sense in bin/fetchware, but doing so
complicates testing.

This is fixed by just forking before calling run(), which is what fork_ok()
does for us.
Fixed typo in Getopt::Long command line option parsing.

cmd_help() used to be called just help, but it was renamed. It looks like
I missed one. It's fixed now.
Added run() tests in t/bin-fetchware-run.t

It tests the command line options and the big commands such as install. It
does not test new, because new asks questions on the terminal, and I have
not successfully gotten Test::Expect to work with new all at once yet.
Added missing test for -? printing help.
Fix POD parsing error.
Fixed copy and paste leftovers in t/bin-fetchware-run.t
Added t/bin-fetchware-command-line.t to test Fetchware's command line interface.

It is just t/bin-fetchware-run.t copied and pasted with the fork_ok()'s removed,
and all of the run()'s replaced with run_perl(), which is just a local
conviencience subroutine that calls system($^X, 'bin/fetchware', @_) for you,
and it does error checking and exit status to subroutine true/false conversion.

A teammate in a group project in college came up with an insane programming
strategy he called "Copy, Paste, Customize." Which is literally downloading
example code snippets off of the internet, pasting them into our project, and
then customizing them to fit the needs of our program.

When using Test::More to test Fetchware I find my self constantly copying large
portions, in the case of t/bin-fetchware-command-line.t the entire file, or test
code, and then changing some parts especially test names. It is really
convienient and fast, and much easier than using some gigantic, complicated
test module like Test::Class or Test::Routine.
Fixed copy_fpkg_to_fpkg_database() test failing to delete a test fpkg.

The left over was named App-Fetchware when I test it in my git repo, but in a
CPAN download the file is named App-Fetchware-1.008 or whatever version of
fetchware your testing.

Fetchware creates lots of files that should be deleted after the test is run,
managing these manually like malloc()ing and free()ing memory in C is stupid.
Just as it works in C, it works ok in fetchware. But a garbage collector would
be nice: Perhaps an object that stringifies to the path of the file it
represents, and on instantiation it adds that object to a list of stuff to
delete. And then an END {} block comes along and deletes it all for me.
Fixed "uninitialized variable" warnings when fetchware is called by itself.

When just fetchware is run the help command is run, but inside run(), the if's
that determine what cmd_*() subroutine to run spit out annoying "use of
uninitialized variable..." warnings, because @ARGV is undef, and therefore so is
$command.

I also deleted the weird space before  the help message is printed. Most *nix
commands don't do this so fetchware shouldn't either.
Fixed indentation due to tabs in bin/fetchware.
Fixed bizarre "variable $VERSION is not imported at" bug.

[PkgVersion] bizarrely declares version numbers using:
{
    $fetchware::VERSION = 1.008;
}
Which looks weird why not "our $VERSION." our has block scope? Or use vars
'VERSION';. use vars has file scope?

Apparently, $fetchware::VERSION does not make a symbol for just regular old
$VERSION. So, you can't actually reference $VERSION.
v1.009

    - Fixed github#2-3 for good by introducing tests for both run() and actually
      running the program with arguments to check its command line arguments.
      Now, if I break the user interface, and fetchware becomes useless, I'll
      actually know from just its own tests.
    - Created a new testing helper subroutine, fork_ok(). All it does is fork,
      execute the specified coderef, and pass or fail based on the forked
      proces's exit status. Used in the test suite testing mentioned above.
    - Fixed a typo that caused fetchware's -h, --help, and -? command line
      options to not work at all. Until this release fetchware was calling the
      help() subroutine, which no longer exists. It was renamed cmd_help() a
      long time ago. This is now fixed, and tested for.
    - Fixed an annoying bug that caused App-Fetchware-$VERSION.fpkg to be left
      in user's fetchware package directory. Fetchware's test suite creates a
      few test packages, and copies them to the user's fetchware database
      directory. These packages are then deleted, because they are only used for
      testing, so they do not need to be left there with the user wondering
      where they came from.
    - And a number of small bug fixes and typos as well.