Forbid client piping to tty enabled container

When a container is launched with `-t`, it is meaningless to connect its input to a client side pipe. This patch explicitly forbids:
* `docker run -t` with a redirected stdin (`echo test | docker run -ti busybox cat`)
* `docker exec -t` with a redirected stdin (`docker exec -ti container psql) < script.sql`)
* `docker attach` with a redirect stdin toward a tty enabled container

**Open question**: should this patch make it in a point release? As broken as it may be, I'm wondering if some people actual rely on this feature today.

Fixes #8015
Fixes #9476
Fixes #9545
Replaces #9492
But that's the case where `err == nil` (`attach` launched successfully) so I have no error text, or am I missing something?