Add FTP support to metalink code. (for single-threaded downloads only)

Conflicts:
	src/ftp.c
Remove cat and rm commands. Few corrections with ifdef macros.

Conflicts:
	src/multi.c
	src/recur.c
	src/retr.c
Initial attempt at verifying hashes. - not working
Add sha256. Rewrite hash verification code. - not working
Correct fread error in metalink.c. - Still computes hash wrong.
Initial working attempt at verifying hashes.
Correct faulty lengths in verification and faulty logic in case --verify=all.
Go back to using <hash_type>_stream functions in gnulib. (Reduces a lot of code)
Remove option --verify. Compare strongest supported hash type to verify files.
Delete existing temp_ files before starting to download. Retry on failed download or invalid hash using new option --retries.

Conflicts:
	src/options.h
Assign values to a few uninitialized variables in retrieve_from_file()
Add option --metalink-file. Add a few interoption availability checks for --metalink-file.

Conflicts:
	src/init.c
	src/main.c
Update initial URL check and final download printing in main.c. Update the logic of merge_temp_files() in multi.c.
Update the logic of delete_temp_files() in multi.c.
Generate random temp file names.
Correct two merging mistakes in src/convert.h and src/http.c. Replace bootstrap.

Conflicts:
	src/convert.h
Update man page and --help documentation. Update default value for --retries.
Correct segmentation fault when specifying a non-existing metalink file path/URL.
Correct a source of memory leak when --jobs is not explicitly specified.
Transfer struct range array to multi.c. Delete to redundant variables in retr.c.