Handle URLs with parameters more sensibly.

Shellquote is the closest thing to array-of-arguments exec calls puppet
supports. As far as I've ever been able to test, it correctly handles quoting
for the shells Puppet uses for `exec{}` resources. Using it to construct
`curl`/`wget` commands means that they correctly download, for example, Jetty:

    http://eclipse.org/downloads/download.php?file=/jetty/stable-8/dist/jetty-distribution-8.1.14.v20131031.tar.gz&r=1

Without shellquote, the `exec` resources see the embedded `&` near the end
and generate two shell commands (the second of which is `r=1`). With
shellquote, the URL is kept as a single argument.
Update spec testing.
Work around for 1.8.7
Merge pull request #18 from nanliu/spec_update

Update spec testing.
Merge pull request #15 from ojacobson/shellquote

Handle URLs with parameters more sensibly.
Add default Windows support

Previously, the hard-coded default staging path of "/opt/staging"
precluded touch-free use of this module on the Windows platform. This
commit adds the params pattern in order to allow the module to work on
Windows platforms without modification.

Further development would be a nice-to-have in terms of adding support
for downloading various kinds of URLs; this is just the critical fix.
Added Powershell Http Support
Use custom fact to determine staging directory.
Modify staging to support multiple OS.

* Detect %SYSTEMDRIVE%\ProgramData for Windows.
* Use different default for Windows.
Merged from nanliu powershell branch