JACK_CLIENT_PID_OVERRIDE environment variable

This required so LASH can map jack clients that are created by child of a launched process
Typically this happens when launcher scripts are used. Like the ardour script
chery-pick the no-self-connect patch from the old repo
Merge branch 'no-self-connect' into lash
Merge branch 'master' into lash
Make use no-self-connect logic for disconnecting ports
Merge branch 'no-self-connect' into lash
Poor man's no-self-connect code
Merge branch 'master' into lash
revert b55ef77edb5c697b461aac71d9792f444ef04f92 (JACK_CLIENT_PID_OVERRIDE)

This is actually not needed because ardour2 script is reusing the process
Merge branch 'master' into no-self-connect
Poor man's no-self-connect code
(cherry picked from commit d160dd3c67607f0225cbe0b5de011f3a95faf5ce)
Remove old no-self-connect code

It should be implemented at server side
JackGraphManager::CheckPorts (with get) -> JackGraphManager::GetTwoPorts

This makes PortConnect and PortDisconnect (string variants) implementations identical
When disconnect of all ports is requested, disconnect ports one by one

 * This improves notifications
 * Allows no-self-connect code to be hooked to single place in disconnect code.
Server side no-self-connect code. still not optional
Merge branch 'no-self-connect' into lash

Conflicts:
	common/JackLibClient.cpp
	common/JackLibClient.h
self_connect_mode engine parameter
expose self-connect-mode engine parameter through control api
[jackd] add -a autoconnect option
[jackd] fix autoconnect code.