When specifying a `--version` for a plugin, always install that version.

Previous behavior was to quit if the plugin was already installed.
Merge branch 'master' into force-install-476
Improve `theme install` logic to support force-installing a specific version.

Previous `theme install` logic:

* Updates the theme if there's an update available.
* Installs if the theme isn't installed.
* Otherwise, assume the theme is installed.

New `theme install` logic:

* Don't do anything if theme is already installed and no `--version` specified.
* If `--version` is set and is different than what's installed, force install.
* Install if the theme isn't installed.
A Behat test for force-installing a plugin
Behat test for force-installing a specific version of a theme.
Mention why there's no break

See https://github.com/wp-cli/wp-cli/pull/476/files#r4981709

[ci-skip]
don\'t hard code localhost
replace host in config file
inline sed replace that is portable across GNU linux and Mac OSX
enable passing through a db hostname with port, socket, etc
default host to localhost
use | as sed separator
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.
behat: replace 'a large image file' step with a more generic and explicit 'download' step
behat: convert install_dir private property to RUN_DIR variable
behat: remove get_path() helper method
behat: rename some helper methods
behat: remove var_dump()