move setting of _QMAKE_{SUPER,CONF,CACHE}_ to a more logical location

there is no point in setting the variables already when peeking into
the caches, as that is done in a separate evaluator anyway.
it also makes no sense to have them set while loading the spec itself,
as it's not permitted to do anything with the caches.
so set them at the next convenient point, which is right before actually
loading the caches.

Change-Id: I3717ddf94353dc04e12c52e542f16ed27b578e14
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
(cherry picked from qtbase/0f68222e9ebdf42778d4bb84260268764eb55b30)
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
clean superfile and cachefile paths upon creation

otherwise, if the output dir is the root, the path would be denormalized.

the code for finding existing files already does that.

Change-Id: I56d70477e9c9ffcd936325068624a84df10ffd87
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
(cherry picked from qtbase/72075656cfeac570ce002c517a22b1c5d7bc0dd0)
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
support a cache that is really just a cache

unlike .qmake.cache & co., the presence of this file has no magic
effects on where mkspecs, modules and other things are searched.

as the obvious name "cache" is of course already taken, we call it
"stash".

the file is searched up to the super cache (if present), otherwise up to
the normal cache/conf (if present), otherwise up to the root.
if it's not found, it is created next to the super cache (if present),
otherwise next to the cache/conf (if present), otherwise in the current
output directory.

note that the cache really should be created and populated by the
top-level project if there are subprojects: otherwise, if there is an
"anchor" (super/cache/conf), subprojects would race for updating the
cache and make a mess. without an "anchor", each subproject would just
create its own cache, kind of defeating its purpose. this is no
different from the existing "cache", but it's worth mentioning that
removing the "anchoring" function does not remove the "nesting order"
constraint.

Task-number: QTBUG-31340
Change-Id: I786d40cef40d14582a0dd4a9407863001bec4c98
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
(cherry picked from qtbase/ff31d87cc883dcf17ab459a15eac04e074d9614a)
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
initialize/reset parser context properly

unconsumed context information may persist after finishing processing of
top-level files and includes.
this would confuse the include optimization, which would slow down
lupdate by orders of magnitude for certain inputs.

Task-number: QTBUG-27936
Change-Id: Ifcf6ddd1b54211434ffd8edfbec5e8960ac35f22
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>