Make connections more modular

The creation of the subprocess is now encapsulated with the connection.
This makes the Client/Service independent of the used RPC mechanism.
Externalize connection code to separate file

This may allow to use different connections and startup mechanisms more
easily.
Add optimized connection on linux

The added connection uses multiprocessing.Pipe to communicate with the
subprocess. This should be beneficial in terms of performance on linux.
On win32 it is not possible.
Merge branch 'modular-connection' into redesign-cpymad-backend