Build & deployment improvements

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

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

Added support for deploying branches other than master

Added "gear deploy <mybranch>"

Added support for preserving previous deployments (to support rollback)

Switched to using date/time based deployment directories

Added initial support for 'gear prepare FILE'

Added support for distributing a deployment to child gears

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

Added 'activate' deployment action

Added writing of deployment metadata w/deployment id and state

Added support for app-dependencies to be unique per deployment

Updated Python cart to support app-root/runtime/dependencies

Added deployment rollback support

Added PathUtils#oo_lchown to change symlink ownership of repo and
dependencies symlinks
Build & deployment improvements

Added old deployment directory pruning
Reduced list of dirs to sync in sdk#sync_gear_repos
Added copying of dependencies between deployments (to save on build
time) unless force_clean_build is specified
Build & deployment improvements

Corrected OPENSHIFT_REPO_DIR override in #build
Build & deployment improvements

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)