Maintain a single png and tcp stream in client

Introducing two new API calls: getPngStream() and getVideoStream().
Multiple calls to these methods return the same objects. The underlying
TcpVideoStream is the same and its lifecylce (connect/reconnect) is
managed by the client.