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

```
Using a Rex module as a mixin is something we haven't done before. We have added Msf mixins that wrap Rex protocol classes and that would be more consistent with the existing codebase. Things get messy if other folks start randomly including Rex modules into their Msf modules (issues with initialize() etc)