Build & deployment improvements

Add support for OPENSHIFT_AUTO_DEPLOY to enable/disable automatic
deployments after building

Add support for OPENSHIFT_DEPLOYMENT_TYPE - disallow git push if set
to binary

Add support for deploying branches other than master

Add "gear deploy <mybranch>"

Add support for preserving previous deployments (to support rollback)

Switch to using date/time based deployment directories

Add initial support for 'gear prepare FILE'

Add support for distributing a deployment to child gears

Add creation of app-deployments and app-archives directories to app
setup

Add 'activate' deployment action

Add writing of deployment metadata w/deployment id and state

Add support for app-dependencies to be unique per deployment

Update cartridges to support app-root/runtime/dependencies

Add deployment rollback support

Add PathUtils#oo_lchown to change symlink ownership of repo and
dependencies symlinks

Add old deployment directory pruning

Reduce list of dirs to sync in sdk#sync_gear_repos

Add copying of dependencies between deployments (to save on build
time) unless force_clean_build is specified

Move app dependencies from the previous deployment to the new build and
delete the previous deployment prior to performing the new build if the
app isn't configured to allow rollbacks (thus avoiding having 2 copies
of the dependencies and repo for a brief period of time)

Move the haproxy cartridge's gear registry to the runtime
platform

Add oo-ssh to use for rsync/ssh as the gear user

Add "primary" endpoint option that indicates that the endpoint should
be load balanced if the app is scalable (along with
OPENSHIFT_LOAD_BALANCER_PORT env var)

Add initial functional tests for build & deployment improvements

Add basic scaling test that:
- creates an app
- validates the gear registry contents
- verifies the <title> retrieved from /
- scales up to 2
- verifies <title> from both gears
- modifies the <title> and pushes the change
- verifies <title> was updated on both gears
- scales to 3
- verifies <title> is still updated on all 3
- issues rollback
- verifies <title> matches rolled back version

Update all jenkins shell command files to create deployment dirs and
sync the repo and dependencies back to the upstream gear

Add "gear archive" command to create binary artifact from current
deployment on a gear

Add primary:true option to 8080 endpoint for scalable carts

Don't stop/start web proxy cart during pre-receive, activation

Use the current deployment dir instead of creating a new one if
hot_deploy is enabled

Don't stop the web proxy cart on rollback

Add 'gear deployments' command
Add support for enabling/disabling backend servers in haproxy configuration.

Add socat dependency.

Add support for enabling/disabling multiple servers using gear uuids.

Conflicts:
	cartridges/openshift-origin-cartridge-haproxy/bin/control
Broker Build and Deployment
Use OPENSHIFT_DEPENDENCIES_DIR in jenkins_shell_command for php

Fixes for nodejs
Fixes for python versions

Conflicts:
	cartridges/openshift-origin-cartridge-python/usr/versions/shared/bin/install

Create build dependencies dir
Jbossas changes for build dependencies
jenkins_shell_command template + delete cartridge scripts
Use build-dependencies dir for jboss carts
Build & deployment improvements

Move cluster/proxy management operations to the platform

Cartridges no longer need to publish NET_TCP:httpd-proxy-info or
NET_TCP:gear-endpoint-info as the platform now calls the web proxy
cartridge's new 'update-cluster' control method.
Generalize scaling functional test