Remove use of 'register' from Qt.

It is deprecated and clang is warning about it [-Wdeprecated-register].

Original patch from Stephen Kelly,
see commit d9fb6e6dbb2b322556d581265da2442e3b91a6a3 in qt5/qtbase

This is a backport of this commit + additional manual replacements in
header files. There are still some 'register' uses inside implementation files left,
but headers are all 'register'-free now.

Change-Id: I7225381df1f093073583d62fa86f7bd7cca869c7
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
qmake: Add object_parallel_to_source config option

This solves the problem of two source files in the same project
having the same name, which ends up with colliding object files.
It also solves issues with moving files around in the source tree
when the GNUmake option is used together with gcc_MD_depends,
where the dependency file would end up with a dependency to the
old source location.

We already have object_with_source option, but that does not play
nicely with shadow-builds. The new option tries to keep the same
hirarcy in the output dir (while still respecting OBJECTS_DIR),
as the sources. Any source with a path outside of the root project
directory (absolute or relative, ../../foo.cpp), will be put inside
the objects directory with the full path appended.

Task-number: QTBUG-34871
(cherry picked from qtbase/47df12225918ba82abe35921af19e547717da58b)
Change-Id: I3481b128ed72494a644fdbc55325661a23e868fa
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>