Move all defvars and defuns out of this, to top level.
Use a constant list as the initial value.
(ffap-soft-value): Rewrite as a macro.
And now it is used only at run time, not at load time.
(ffap-ftp-default-user): Use just "anonymous" as default value.
(ffap-what-domain): Don't set mail-extr-all-top-level-domains here.
(ffap-newsgroup-regexp, ffap-newsgroup-heads): Move up past first use.
(ffap-string-at-point-region): Likewise.
(ffap-bindings): Offers a default installation.
(ffap-string-at-point): Modified arguments.
(ffap-gnus-hook): Updated for Gnus 5.
(ffap-tex-init): Delayed initialization of `ffap-tex-path'.
(ffap-dired): New entry in `ffap-alist'.
(ffap-menu-rescan): May fontify the choices in buffer.
(ffap-read-file-or-url): `PC-completion-as-file-name-predicate'
used if available, to work with complete.el.