Adding in better process handling (stdin/stdout, plus timeout)

Some improvements to `conda_api.process` around stdin/stdout and timeout
Yes, that is the intended effect.  Initially "I thought `PIPE` is always the right thing", and then realized that I needed to leave that decision to whoever is calling `conda_api.process`, and so the defaults are now `None` which will match `subprocess.Popen` if the caller doesn't specify something different.  I'm pretty sure `None` means "use whatever the current process is using".