Added warning to make_test_dist()s POD regarding $destiantion_directory.
Added first draft of a README for Fetchware.

This commit also disables dzil creating a README for me by commenting out the
[Readme] plugin in dist.ini

I'm adding my own README, because Fetchware is not a CPAN module, so it's README
file will actually be read by people, so I want it to be helpful instead of
mostly useless.
Edited and added to README again. It's still a draft.
Added a space to all prompt strings that need one.
Added verification files to http_parse_filelist().

Unlike the ftp parser http_parse_filelist() only parses certain filenames, but
parse_filename_listing() is reused by fetchware new, so fetchware new can
analyze the user's lookup_url to determine what options need to be set.

I just added the verification files and KEYS to it, so all the files fetchware
new might need it gets.

This was a simpler fix, then anything more sophistocated like a user callback
regex that determines what files to parse. Furthermore, a user callback would
not work, because parse_directory_listing() should be used not
http_parse_filelist() directly, and how would parse_directory_listing() know to
add the user callback? It wouln't. Maybe a callback could be added to all three
and parse_directory_listing(). Then parse_directory_listing() would then forward
the callback on to which ever parser subroutine is needed.

Is that really a better solution, then a few more alternations added to a regex,
and a comment why to preven those alternations from being removed later on?
Removed newline restriction from drop_privs() pipe helper subroutines.

cmd_new() also uses drop_privs(), and it writes the Fetchwarefile it
generates through the pipe to the parent, and this Fetchwarefile obviously
has newlines in it. The old helper functions used newline to split up the
list of variables that was written across the pipe. The new implementation
in this commit replaces the newline, with a randomly generated at
compiletime magic number, and this is used to split up the stream from the
pipe into variables.

The old subroutines pipe_{read,write}_newline() were also renamed to
{read,write_dropprivs_pipe(), because they no loner use newlines.
Committed bin/fetchware's changes to accommodate pipe helper changes.
Added support to cmd_clean() to also delete fetchware's temp files.

Before fetchware would skip anything that was not a directory. Now it also
deletes files in addition to directories. These files also start with
fetchware-*. But, Fetchwarefile-* is also supported, so cmd_new() can
better name the Fetchwarefiles it makes for users.
Fixed bugs in fetchware new.

A while ago I redid fetchware new. It was buggy. Those bugs are now fixed except
the ones listed below that I still need to fix:
1. The Ask for other options dialog is broken. Fix it.
2. Add a Expect style test for it.
3. Add an Expect style test for the main cmd_new command as well.

A SkipTempDirCreation option for drop_privs() had to be created to fix cmd_new()
creating weird tempdirs for no reason.
Add missing done_testing() to keep Test::More happy.
Fixed previous bin/fetchware new bugs.

The bugs mentioned 2 commits ago have been fixed. Except for the cool cmd_new()
test using Test::Expect. I just could not get it to work properly. I tried a
bagillion and one values for the prompt, but it just won't work right. It's
weird the same prompt that works great in the other Test::Expect tests does not
work in cmd_new(). I believe the problem is that the one prompt prints a
gigantic Term::UI print_me that might be bigger than what Test::Expect uses to
find the next prompt. But I don't know, so the code has been suitabley marked
BROKEN.

I also fixed a bug in the %SIG handler code. Now, the sig handler is only run in
the parent process when a CTRL-C (or CTRL-Z on Windows) is received. Before it
was run in both resulting in weird errors on the child, because the file handles
used vanish under the childs eyes. This was fixed by only doing it in the
parent. I also had to fix my code to ensure it also works when drop_privs() is
not used.

Next up I'll create more example Fetchwarefile's and add an EXAMPLES section to
App::Fetchware listing these examples.
Deleted spurious Apache.Fetchwarefile junk file created by a failed test.
Removed unneeded forked() subroutine from Util.
Fixed a bug in cmd_new causing only one mirror to show up in the Fetchwarefile.

When you specified multiple mirrors during add_mirrors() only the first one
showed up. The cause was hashes are unique, and each subsequent mirror would
overwite the previous one causing only the last mirror specified to make it all
the way to the Fetchwarefile.

This bug was fixed by replacing tons of push @options stuff with each helper
subroutine directly adding stuff to $fetchwarefile.
Fixed run_progs() splitting up its arguments properly with quotes bug.

Fixed the bug mentioned above using Text::ParseWords. Adding another dependency
is annoying, but it's a small one, and solving the surprisingly non-trivial
problem myself would be a waste of time better spent elsewhere.

I also added Text::ParseWords to dist.ini's list of Prereqs.

And I created an EXAMPLE FETCHWAREFILES section in App::Fetchware's POD
documentation to list the example Fetchwarefile's I'm going to create to put
Fetchware through its paces before I properly release it.

Next, up is fixing a weird bug in append_options_to_fetchwarefile(), where it
includes the description for mirror each time a mirror is added, which is silly.
Fixed cmd_new() mirror appending to Fetchware wrong bug.

Just used state to fix it. This *will* cause problems if I ever implement a
crazy loop for fetchware new:

fetchware new Apache Nginx Postgres MariaDB php

Which would case cmd_new() to loop over that list, and create a Fetchwarefile
for each argument. But I'm not adding that useless value add feature right now.

Perhaps later.

Next up, create some example Fetchwarefile's for other programs.
Made the example Apache Fetchwarefile look nicer.

Added a heredoc to make the configure_options configuration option look nicer.

Next, I'm going to add more example Fetchwarefiles, and use this opportunity to
give Fetchware a real test by using it install all sorts of software.
Added an NGINX example to App::Fetchware's example Fetchwarefiles.

This also involved fixing a few bugs especially regarding how user_keyring
worked.

Bizarrely Apache and Nginx structure their auto index pages similarly enough
that my Apache auto index parser works for nginx!!!!!!!!!! I can't believe
this!!! I though for sure, I'd be stuck figuring out how HTML::Parser works
again to figure out how to get at the information I need from the index.

Next up, more examples.
Added an example Fetchwarefile for PHP.

This was a real pain, because PHP uses a Web application instead of a simple
fairly standard mirror system. There is no simple auto index page for fetchware
to use, so a custom lookup handler is needs as well as a download and verify
handlers as well.

I also deleted the junk nginx.Fetchwarefile file. It's been copied and pasted
into App::Fetchware so I don't need it anymore.
Removed Archive::Extract cruft. It's not used anymore.