Merge pull request #92 from rapid7/feature/MSP-9912/metamodule-refactor-ssh-key

Feature/msp 9912/metamodule refactor ssh key
Merge branch 'master' into staging/electro-release
Use downcase instead of upcase
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
```
Explicitly use the echo stager and deregister options

Certain modules will only work with the echo cmd stager so
specify that one as a parameter to execute_cmdstager and
remove the datastore options to change it.
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
Make cmdstager flavor explicit or from info

Every module that uses cmdstager either passes the flavor
as an option to the execute_cmdstager function or relies
on the module / target info now.
Dont deregister an option that is in use
Add module for ZDI-14-106, Oracle Event Processing