Eliminate now unnecessary index argument to fsmMapPath()
Eliminate unnecessary rpmfiFiles() use + related include

- Fsm no longer needs rpmfi_internal.h... whoa.
And now that we finally can, pass rpmfi to plugin hooks when available

- Unowned directories obviously do not exist in rpmfi, so plugins
  still need to be passed path and mode separately, but for all
  the rest rpmfi is there and contains valuable additional information
  that's been unavailable to plugins until now
Only set file permissions etc once per hardlinked set

- Restores behavior introduced in
  commit 240de78f15cd0f3b59ca52f84d7063725ceadb8f, "broken" by
  commit 3d411b1e281ef4dfcc0c6dd96ca7201b02fbc7c1
Dont create hardlink file content if link() failed
Only regular files can have hardlinks

- Now that we can (since the hardlink handling remake), only bother
  calling rpmfiFLinks() for regular files and move the related variables
  to local scope. No functional changes here.
expandRegular() doesn't need the whole fsm struct, pass what's needed...
Lift creation of regular files (and hardlinks) into a helper function

- Now that this is possible and even easy... rpmPackageFilesInstall()
  is big enough without all this.