Shuffle FileList members around for a more logical grouping
Split the various file flags out of the global filelist struct

- Active defaults and current values share several properties, moving
  them to a common struct will allow more code to be shared when
  manipulating them. For now just splitting things piece by piece
  though, no functional changes.
Split the file attribute recs (permissions) out of the global filelist

- Same as previous commit: moving these to a common struct will
  allow various benefits like more shared code. For now just
  moving things, no other changes.
Split file languages and capabilities out of the global filelist

- These are only releavant for "current" entry but it wouldn't seem
  unreasonable (if not terribly useful mayhap) to be able to have defaults
  for these as well. No functional changes yet though.
Split out the remaining "current file" state out of global filelist

- We're unlikely to ever want default counterparts for directories
  and devices, but moving these out of the global state tracking
  will allow for saner handling of this constantly changing
  state nevertheless.
Eliminate redundant filelist initializiation

- The file list gets zeroed out with memset(), eliminating all this
  noise lets the actually necessary initialization tasks more obvious.
Add a helper function for freeing/resetting a file entry, use it

- Now with all the per file-entry data in a struct of its own this
  becomes sane and should plug up a couple of leaks as well.
Centralize fl.processingFailed setting for parseForFoo() calls

- All the parseForFoo() functions return an error code already,
  on top of this they also set fl.processingFailed, which forces
  passing the whole damn filelist to them when they'd only really
  need the current buffer and (parts of) fl.cur / fl.def.
- Preserve former behavior of continuing parsing despite errors,
  dunno whether it makes much sense though.
Only pass what's needed to parseForVerify()

- It doesn't need the entire filelist, just the buffer and current
  or default file entry pointer
- Additionally initialize the local variables on declaration, cleaning
  things up that little bit
Only pass what's needed to parseForAttr()

- It doesn't need the entire filelist, just the buffer and current
  or defaul file entry pointer
Only pass what's needed to parseForDev()

- It dosn't need the entire filelist, just the buffer and current
  file entry
Only pass what's needed to parseForConfig()

- It doesn't need the entire filelist, just current file entry.
Only pass what's needed to parseForLang()

- It doesn't need the entire filelist, just current file entry (actually
  just the lang pointer but for consistency with others...)
- We could (and perhaps should) now quite easily support %deflang as well,
  but leaving that to another time...
Only pass what's needed to parseForCaps()

- It doesn't need the entire filelist, just the current file
  pointer (or actually just the caps string but for consistency...)
  That we need to track for capability presence overall is a different
  thing, that doesn't need to be in parseForCaps() at all.
Eliminate unused argument to parseForSimple()
Unmask %license directive when parsing %files section

- This always was a rare creature, driven to extinction long time
  ago when Copyright: changed to License: which masks the %license
  directive of %files list with a macro holding the the textual
  description from License tag, causing errors.
- Override %license during %files parsing to bring back its original
  meaning, useless as it might be in its current form.
Explicitly differentate internal/exported file attributes

- RPMFILE_EXCLUDE only exists during spec parse, and doesn't "leak"
  into headers only because the file is, well, excluded to start with.
  Unexport the internal-only bit and explicitly strip out any excess
  bits from data going to header. The current 16/16 split is artificial
  of course, RPMTAG_FILEATTRS is 32bit so there's plenty of room
  for growing new file attributes, with internal-only adjustments
  required.
- Eliminate RPMFILE_UNPATCHED while at it, this is a leftover
  from Suse patch rpms which are no longer used anywhere.
Handle %docdir with an internal file attribute

- Simplifies and cleans up things a bit as parseForSimple() now only
  parses this and processPackageFiles() acts on the result, and
  doesn't need specific argument checking now (only %doc is allowed
  to have more than one file per line)
Handle %dir parsing with an internal file attribute

- Cleans things up a little bit by removing the special test
  for %dir in parseForSimple(). The separate isDir is still necessary
  for directory recursion tracking but that's separate from parsing
  the line.
Negation doesn't make sense for any of the virtual file attributes

- The negate field is unused in all the attributes anyway, but
  the whole concept doesn't make any sense for the virtual file
  attributes. Simplifies the thing another little bit.