NewServerConn creates a new "pseudo" connection that implements the speed test protocol.
It's called "pseudo" because it's not a real TCP connection - everything is done in memory.
Download requests the server to send l bytes of data.
The callback function cb is called every second with the time since the last call,
and the number of bytes received in that time.
Upload requests the server to receive l bytes of data.
The callback function cb is called every second with the time since the last call,
and the number of bytes sent in that time.