Tidyup of GPP

Add Security Bulletin Reference
ProgramData is symlink to AllUsers anyway
Use NetAPI
Dont try to read 0 structs
Merge in parser
Tidyup parser
Use parser
More legible output
This module was broken due to a hardcoded IP address for google.com
Fix incorrect use of sock.get that can lead to an indefinite timeout

console1:
```
msf> use auxiliary/scanner/http/open_proxy
msf auxiliary(open_proxy) > set RHOSTS 192.168.0.4
msf auxiliary(open_proxy) > set RPORT 8888
msf auxiliary(open_proxy) > run
< the connection never times out >
```

console2:
```
$ nc -vlp 8888
Listening on [0.0.0.0] (family 0, port 8888)
Connection from [192.168.0.4] port 8888 [tcp/*] accepted (family 2, sport 43245)
GET http://209.85.148.147/ HTTP/1.1
Host: 209.85.148.147
Connection: close
User-Agent: user_agent
Accept-Encoding: *
Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7
Cache-Control: no
Accept-Language: de,en;q=0.7,en-us;q=0.3
```

After the patch, requests timeout after 10 seconds:
```
msf auxiliary(open_proxy) > run
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
```
Respect RPORT even if additional ports are specified
Fix incorrect use of sock.get() that could lead to indefinite hang
Fix incorrect use of sock.get(), remove rundant return values
Fix incorrect use of sock.get that leads to indefinite hang
Fix bad use of sock.get() and check() implementations

Many of these modules uses sock.get() when they meant get_once()
and their HTTP-based checks were broken in some form. The response
to the sock.get() was not being checked against nil, which would
lead to stack traces when the service did not reply (a likely
case given how malformed the HTTP requests were).
Correct sock.get() to sock.get_once() to prevent indefinite hangs/misuse
Dont blindly strip a possible nil return value
Fix use of sock.get vs sock.get_once
Switch to get_once for consistency
Fix sock.get use and some minor bugs
Fix bad copypast, sock.get usage, HTTP mistakes
Check for sock.get / udp_sock.get issues