Do not bother with separate notifications on multiple provides matches

In the spirit of commit 272eaae387c72cac14eff8665eaa3126ca2dcc22.
Do not match obsoletes against provides in rpmal

Always match against the package NEVR. We still check the package
name so that we don't end up with too many duplicates.
Do self-conflicts/obsoletes filtering in rpmalAllFileSatisfiesDepend

This is a bit cleaner, and it also fixes a bug when there is a
self-conflict in the file list and another packages provides the
conflicting file.
Revised fix for RhBug:1131892

- Didn't realize there's rpmdsTagTi() now, which is fit for this
  purpose and doesn't look as much out of line with the others.
  No functional changes here though.
Fix triggerindex handling in rpmdsMerge

It always created a triggerindex array and also did not correctly
initialize it with -1.
Resurrect dependency spew during build

- Since commit a357c99c58a5e1367160dfa692f26d14bd3a3df1 the dependencies
  are no longer in the header so there's little to print from there.
  As it happens things are much saner this way, we no longer need
  to create rpmds'es just to print stuff.
Resurrect rpmlib() dependencies on source rpms

- Commit 0bda2faa4de368a87f85084856a5fed701774acb caused a regression
  where rpmlib() dependencies are no longer added to src.rpm packages
  as the header is populated early, whereas rpmlib() dependencies
  get added late in the game. So nothing was pushing the rpmlib
  stuff to header. Sigh.
Dirty kludgery to fix rpmdeps segfault (RhBug:1131892)

- Another regression from the recent rpmfc work, in rpmdeps context
  there's no spec or packages from it. Allocate a dummy package so
  we have some place to store the dependencies. And yes its ugly.
Honor --noglob in install modes too
Fixed double dealocation of ei pointer (RhBug:1133885)
Dont try to close non-existent fdno's on Fclose()

- Commit 547a004b7e1e9e5a5d6cc04ce0539242bff5e592 introduced a regression
  on stacked io Fclose() return code, details at
  http://lists.rpm.org/pipermail/rpm-maint/2014-August/003731.html
- The original code seems fishy in other ways (missed errors), this
  hopefully fixes both cases by only attempting to close actually
  open fdno's and only considering actual closes for error codes.
Bump version to appear newer than 4.12.x branch
Enable the unused macro warning again, now without performance penalty

- Track non-global macro definitions in a helper variable, this
  eliminates the need for costly macro table walking at end of each
  expansion cycle as we only bother doing it if non-global macros
  were defined during a given expansion cycle.
Add utf-8 validation to librpmbuild, take 1 (ticket #30, RhBug:948712, ...)

- This adds brutally simple utf-8 validation to spec parse & package
  construction: all string-class tags in headers are checked regardless
  of other tag semantics.
- Parse-time validation is optional via RPMSPEC_NOUTF8
  flag, but package construction time is required as we want to
  stomp RPMTAG_ENCODING to all packages that pass. What is always
  optional is whether non-valid utf-8 strings fail the build, defaulting
  to off (but distros probably want to enable it)
- Note we dont give a damn about the spec itself, only what ends up in
  packages: strings can come from numerous other sources than spec
  directly, and OTOH who cares if eg spec comments are non-utf?
Regression the 13th: The Final Friday

- Yet another regression from the recent dependency refactoring and
  ensuing patches-on-patches-on-patches work: some rpmlib() dependencies
  (payload, tilde) are added as late as writeRPM(), those have been going
  to /dev/null recently.
- The fix actually removing code is probably a good sign...
Use rpmRC return type in checkSep
Refactor dependency checking code into checkDep()
Clean up dependency relation parsing

Fix indenting and simplify control flow.
Add back comment lost with commit #e2ce4c21
Simplify tilde-dependency checking

- Now that all our dependencies are in per-package rpmds arrays this
  is far easier (and faster as well)