Disable curl globbing for remote retrievals

- urlGetFile() can only handle one file at a time, so globbing does
  not make sense and only confuses us. Besides, useful things like
  'rpm -Uvh http://somewhere.org/foo-1.2-1.{i386,x86_64}.rpm'
  work just as well without curl-level globbing.
- Incidentally this is also the documented workaround for using
  IPv6 numerical addresses with curl (RhBug:1076277)
Make symlink unpacking more like the other cases

- fsmVerify() first, then read, validate archive, create entry
  as necessary.
- We dont really need the payload content for anything as we have the
  target in rpmfi already, but since we have to skip over it somehow
  we might as well validate the content matches expectations.
Call fsmVerify() centrally for all file types
Drop unused mode argument from fsmBackup()
Determine backup/rename based on suffix, not mode

- This is ultimately the same thing, just eliminating unnecessary
  re-evaluation and logic duplication
Eliminate unnecessary struct stat argument to fsmCommit()
Unbreak reading of the new stripped format payload

- Iterator points to previous file (or nothing at all) inside
  the iter next function, need to use the indexed rpmfiles interfaces.
  There used to be a rpmfiSetFX() call here at some point which would've
  made this work but the next function is not supposed to be setting
  the iterator, only figuring the next index.
Avoid using rpmfi methods inside fi->next, part 2

- fi->next() shouldn't need to call rpmfiSetFX(), it gets set on
  return from the iterator function and use rpmfilesFLinks() instead
  of the iterator version to provide random access to files, that's
  what its for.
Dont bother checking for NULL "self"

- iterReadArchiveNext() can only get called through fi->next which
  pretty much means fi is not NULL...
Grab file count on entry to iterReadArchiveNext()
Make cpio and stripped archive reading more similar

- For regular cpio archives we'll need to get a path, otherwise funny
  stuff might happen... so decide on path, not fx
- Validate fx is within bounds for both archive styles
- Explicitly set expected file size for cpio archives too
Only regular files can have hardlinks
Create symlink based on header, not payload data
Skip over symlink target data in payload automatically

- We have no use for the symlink target stored as file content, the
  data from header is used instead. With this change only regular
  files ever have non-zero expected payload size on return.
- There's now a possibility of IO-error after validating the mapping
  index, differentiate between rc / fx on return to avoid bad
  values to rpmfiSetFound()
Eliminate redundant rpmfiFLinks() call, cleanup
Add rpmfilesStat() and iterator counterpart API

- Maps file info set data into struct stat as lstat() would return it.
- Needs sane flags to be defined...
Replace fsmMapAttrs() with rpmfiStat()
Utilize rpmfiStat() in rpmfiArchiveWriteHeader() too

- Stripped payload doesn't need all the goo we look up via rpmfiStat()
  but it does need corrected size for symlinks, hardlinks and all...
  which we get from rpmfiStat(). For plain old cpio archives this
  eliminates the whole manual fi -> stat mapping, obviously.
Determine need to stat() based on suffix, not kludgy goal + mode
Dont need no stinking goal no more...