Add getenvs, update getenv, change extract_path use

Stacks of modules were using `extract_path` where it wasn't really semantically correct
because this was the only way to expand environment variables. This commit fixes that
up a bit.

Also, I changed the existing `getenv` function in `stdapi` to `getenvs`, and had it
support the splat operator. I added a `getenv` function which is used just for a
single variable and uses `getenvs` behind the scenes.

The meterpreter console `getenv` command now uses `getenvs`
Fix download_exec to better handle spaces

It was just wrong. Now it actually works.
Update to masked credential format

* To support change in Pro export format. Previous format looked
like an XML element, for no reason, failed validation.
Merge remote-tracking branch 'metasploit-framework/master' into masked-cred-format-update
Merge remote-tracking branch 'metasploit-framework/master' into masked-cred-format-update
Merge remote-tracking branch 'metasploit-framework/master' into masked-cred-format-update
Merge branch 'adjust_getenv_api' into stop_abusing_expand_path
Removing old report API example

* This should be in Pro code since reporting over the API is Pro
only. Also this version is now mad out of date.
First pass of WMI support

Close but more to do.
Final tweaks for WMI support
Add error message support

This commit enables returning of error messages based on the HRESULT.
They still aren't nice, but they're better than nothing.
Post get_envs library methods
Copy Meterpreter return hash

Dont add a key if no value is found
Modify clipboard dump to support new format from Meterpreter
Support service_control and new status field in query

This code adds support for the new service_control feature in meterpreter
and also supports the status field that comes from the service_query function.
Merge branch 'upstream/master' into stop_abusing_expand_path

Conflicts:
	lib/msf/core/post/windows/shadowcopy.rb
	modules/exploits/windows/local/bypassuac.rb
	modules/post/windows/gather/wmic_command.rb
	modules/post/windows/manage/persistence.rb
Rescue InvalidWordCount error

This is a cherry-pick of commit ea86da2 from PR #2656
Recreate the intent of cfebdae from @parzamendi-r7

The idea was to rescue on a NoReply instead of just fail, and was part
of a fix in #2656.

[SeeRM #8730]
initial module
whoops, typoed the markers