Patches UA and PROXY in metsrv when running migrate
msftidy'd
De-committing based on suggestions from Meatballs1 and jlee-r7.
Provides methods to patch metsrv stagers with options.
Cleaned up indents.
Refactored expiration and timeout logic in client_core.rb
Mitigates excessive use of lookup operator (hopefully adds clarity)
Uses a hash for options as opposed to numerous methods on blob
Fix #4378 - Do exception handling

Fix #4378
Take full advantage of the check command
Reworked to avoid extending String class on blob per hdm's rec.
This oracle scheduler exploit hangs if not vuln

When this exploit gets run against a system that isn't vulnerable
it can hang for a signifigant ammount of time. This change uses the check
method on the exploit to see whether it should proceed. Don't try to exploit
the host if it's not vulnerable.
Land #4404, Oracle scheduler exploit fix
Land #4402, ms12_020_check NilClass fix
Refactors metsrv patching in reverse_http.rb
Refactors metsrv patching in reverse_hop_htt.rb
Patch UA/Proxy settings during migration, lands #3632
Do not delete files that do not exist in rm_f
Land #4410, rm_f with more f
add direct registry access methods

Rather than operating on a passed-in HKEY, these open and close the registry
key directly for each operation.

This pattern better reflects the actual API usage within msf, and removes extra
round-trips to open and close the registry key, reducing traffic and increasing
performance. I did not add direct versions of every registry operation.
There was no benefit for more rarely-used operations, other than requiring more
churn in the meterpreters.

The primary beneficiary of this is post exploitation modules that do registry
or service enumeration. See #3693 for test cases.