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
Fix msftidy and tweak a few modules missing timeouts
Use the specified UA, dont duplicate ports
Fix host-endian related pack errors. See below for details.

Ruby treats endianess in pack operators in the opposite way
of python. For example, using pack('<I') actually ignores the
endianess specifier. These need to be 'I<' or better yet, 'V'.
The endian specify must occur after the pack specifier and
multiple instances in meterpreter and exe generation were
broken in thier usage.

The summary:

Instead of I/L or I< use V
Instead of I/L or I> use N
For Q, you need to always use Q< (LE) or Q> (BE)
For c/s/l/i and other lowercase variants, you probably dont
need or want a *signed* value, so stick with vV nN and cC.
Fix improper use of host-endian or signed pack/unpack

Note that there are some cases of host-endian left, these
are intentional because they operate on host-local memory
or services.

When in doubt, please use:

```
ri pack
```
MSI sections actually need to be signed after all
Fix the spec to allow for 1 or more spaces between