Gather Steam Server info

I am not a gamer, but this protocol came up during work so I wrote a quick gather module for it.

It should work against any dedicated Steam server.  You can find example, public targets at https://www.gametracker.com/search/cs/?.  

Example usage:

```
msf auxiliary(server_info) > use auxiliary/scanner/steam/server_info
msf auxiliary(server_info) > set RHOSTS steam-hlds.vuln.lax.rapid7.com
RHOSTS => steam-hlds.vuln.lax.rapid7.com
msf auxiliary(server_info) > run

[+] 10.4.25.20:27015 found 'Counter-Strike 1.6 Server'
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf auxiliary(server_info) > set VERBOSE true
VERBOSE => true
msf auxiliary(server_info) > run

[*] Sending probes to 10.4.25.20->10.4.25.20 (1 hosts)
[+] 10.4.25.20:27015 found '{:version=>48, :name=>"Counter-Strike 1.6 Server", :map=>"cs_assault", :folder=>"cstrike", :game_name=>"Counter-Strike", :game_id=>10, :bots=>0, :game_version=>"1.1.2.7/Stdio", :type=>"Dedicated", :environment=>"Linux", :visibility=>"public", :VAC=>"secured", :players=>"0/16"}'
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf auxiliary(server_info) > services

Services
========

host        port   proto  name   state  info
----        ----   -----  ----   -----  ----
10.4.25.20  27015  udp    steam  open   ---
- :version: 48
  :name: Counter-Strike 1.6 Server
  :map: cs_assault
  :folder: cstrike
  :game_name: Counter-Strike
  :game_id: 10
  :bots: 0
  :game_version: 1.1.2.7/Stdio
  :type: Dedicated
  :environment: Linux
  :visibility: public
  :VAC: secured
  :players: 0/16

```
@hmoore-r7 it isn't completely true. See:

natpmp_map:

```
  include Msf::Auxiliary::Report
  include Msf::Auxiliary::Scanner
  include Msf::Auxiliary::NATPMP
  include Rex::Proto::NATPMP

```

tftp_transfer_util.rb:

```
class Metasploit3 < Msf::Auxiliary

  include Rex::Proto::TFTP
  include Msf::Auxiliary::Report

```

There are other samples, just search "include Rex::" inside modules.

Anyways I agree, I feel like the good way to make it probably would be to add, or at least start a design into Rex to add, full support for the Steam protocol. And use a module mixin to provide an "easy to use" API to modules. That would be great :)