Added isValid() to GeneralDataStream

GeneralDataStream is valid if the record type and length of the
GDS header is correct.
Try to make TcpSocketTelnetConnection test less flaky
Move GeneralDataStream to own header and source
GeneralDataStream starts to read after GDS header record