Truly support multiple instances

Qt*Single*Application is not designed to support multiple instances.

A shared memory is used to list all pids of running instances.

When an instance gracefully quits, it removes its own entry
and every other entry which is not currently running
(i.e. crashed instances).

Running qtcreator -client opens the first running instance in this list.

Running qtcreator -client -pid works as before.

Task-number: QTCREATORBUG-9458
Change-Id: I25d22a81097a224e9e45af093efa2ef2eccf6cb7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Do not create pid-specific peer file before initialize

When running with -client, pidPeer file is created too early,
and it is not locked, therefore never deleted.

initialize() is called for non-client executions (including the case
of qtcreator -client when no instance is running or qtcreator -client
-pid when the pid is invalid).

Task-number: QTCREATORBUG-9216
Change-Id: I825556b0ec5e1db4240e4a63bfe6aec60386984d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: netyrj <netyrj@gmail.com>