First pass at cleanup.

Use a single expansion of $tcsh for each of rev and rel.

Fix the logic checking for availability of completion:
it would not have loaded completions for any x.00 releases.

Rename _complete to _has_complete for clarity.

Reuse the "goto end" for skipping completion rules when the
shell does not support it. Avoids having the bulk of the script
indented inside an if.

Only unset noglob if we set it.

Set OSTYPE (and leave it defined) if it isn't there.

Simplify the parsing of various hosts files:
- remove unnecessary tr replacing spaces with tabs
- do not remove lines with +: instead remove leading [-+]
- remove netgroups, though
- split comma-separated hostnames into individual lines
  (these come from ssh_known_hosts files)
- remove IP addresses (and empty lines as a side-effect)
- only leave one instance of each host in the list (sort -u)

Fix ~/.netrc parsing to only use lines where first element is "machine"
instead of any line that has "machine" anywhwere on it.

Fix the default host list:
- check if the list is empty, as it always exists (we set it earlier)
- trim the list of historical hosts that used to provide anonymous FTP
  downloads to the public

Remove the traditional_complete case of tex. The "new" one is sensible
for all.

Fix MH completions:
- use -X instead of which to check for folders(1)
- put back the leading zero to all tr commands: \012 is new line,
  while \12 is form feed (both happen to work, though)

Remove unnecessary quotes from case labels. Remove empty default case.

Add completion for service(8) for FreeBSD and Linux.

Don't unset traditional_complete: it is a user-preference setting.