Add module for CVE-2010-2343
Fix ROP NOP address and reduce/remove NOPs
Fix and improve reliability
Fix payload size
Replace unnecessary NOP sled with random text
Remove unnecessary NOPs
Minor code formatting
Increase the size of the NOP sled
Fix issue with getenv failing

The call to `getenv` failed when `%` or `$` were used because of the
differences between Meterpreter handling and MSF handling.

Meterpreter effectively ignores (ie. strips out) the platform-specific
characters which are used for environment variables. In the `getenv`
call, MSF was invoking `getenvs` and getting a full hash of values, then
attempting to index into the hash using a string which may be "polluted"
with those platform-specific characters. This meant that there was a
discrepency between what was returned and what was used to index and
as a result, the value would come out as `nil`.

For example, calling `getenv('%FOO%')` would result in a hash with
`{'FOO'=>'bar'}`, so looking for '%FOO%' in this result would yield
nothing.

This commit changes this so that the name is ignored and the first
value is returned.
Partially revert "Replace unnecessary NOP sled with random text" to improve reliability.

This partially reverts commit 12471660e9e97691e94fe8d950c7af1929d6122c.
Add Juan as author
Use pop#ret to jump over the overwritten seh
Land #2970, @sgabe exploit for CVE-2010-2343
Land #2982, make getenv smarter