Bug fix: allow plugins and themes to be installed from zip file URLs that contain GET parameters

Without this bug fix, doing something like:
wp plugin install http://downloads.wordpress.org/plugin/buddypress.1.7.2.zip?test
would fail, because wp-cli wouldn't recognise that the URL contains a zip file. This is because the wp-cli code assumes that ".zip" are the last 4 characters in the URL.

With this bug fix, the .zip file detection in URLs has been improved, so the above command works as expected.

This allows (for example), plugins/themes to be installed directly from private Amazon S3 URLs (which have GET parameters in the URLs). For example:

wp plugin install 'http://s3.amazonaws.com/bucketname/plugin.zip?AWSAccessKeyId=123&Expires=456&Signature=abcdef'

Note: for complex URLs that contain ampersands, it is usually necessary to enclose the URL in single quotes.
behat: Tests to demonstraten the plugin/theme install bug in #581

* Install plugins from WordPress.org repository, a local zip file, and remote zip files.
* Install themes from WordPress.org repository, a local zip file, and remote zip files.
Bug Fix for #581: allow plugins/themes to be installed from complex zip file URLs

This should be more reliable than the attempted fix in a12965c.
Merge remote-tracking branch 'upstream/master' into zipfiles

Changes: https://github.com/wp-cli/wp-cli/compare/fbaab715...498fb6

behat: replace 'a large image file' step with a more generic and explicit 'download' step
behat: Convert duplicate plugin/theme tests to scenario outlines

Converts the plugin/theme tests added in e749f71 to Behat's scenario outlines (http://docs.behat.org/guides/1.gherkin.html#scenario-outlines), which removes test duplication.

vendor/bin/behat features/upgradables.feature --expand
Merge branch 'master' into zipfiles

Conflicts:
	features/steps/basic_steps.php
behat: upgradables comment updates
man-src updates for #581
Merge pull request #581 from om4james/zipfiles

Bug fix: allow plugins and themes to be installed from zip file URLs that contain GET parameters