Fix parsing tcp

Now the function for parsing tcp or udp can be followed by a nullary argument, port <port>, src port <port> or dst port <port>. The same applies for portrange. Examples:

   * "tcp" => {'tcp'}
   * "tcp port 80" => {'tcp, {'port', 80}}
   * "tcp src port 80" => {'tcp, {'src_port', 80}}
   * "tcp dst port 80" => {'tcp, {'dst_port', 80}}
   * "tcp src portrange 80-90 => {'tcp, {'src_portrange', {80, 90}}}