Pam process

The PAM modules are not necessarily thread-safe. In addition we really want to run the 'auth' and 'session' stacks in the same process, so later work with reauthorizing the agent can kick in.

This means sharing a cockpit-session process between the CockpitAuth code and webservice code.

```cockpit-session``` now accepts a ```-p FD``` argument, which tells it to read a password from that FD, authenticate, and return the results back on the same FD.
    
In the future we'll also want cockpit-session to return any kerberos TGT it got during opening the session back to cockpit-ws, so we can use store that TGT in the user's credentials, and use it to connect to other servers.
    
Unfortunately we cannot use CockpitPipe to start the process in CockpitAuth because of the way that CockpitWebServer runs handlers in different threads (for now). So implement a simple work around and
create the CockpitPipe once in the websocket thread.

We also fix several other security issues in ```cockpit-session``` here. But not all of them.