RemoteAddr() must close the connection and clear the buffer if we
receive a invalid PROXY protocol header.
Change the client test as it can get an EOF or a ECONNRESET.
The library user can define a maximum time to wait
for the PROXY protocol header, before failing out to
normal connection.
We can assume that a proxy in front of the service will
send the PROXY header immediatelly.
This solves the issue of clients getting block when
getting the RemoteAddr() for an incoming connection that
does not send any data. That is the case of http.Serve on
go < 1.6 as described in https://github.com/armon/go-proxyproto/issues/1