Bug 970257 - Allow git@ urls

Also support reflog tracking, and the ability to deliver a commit from a fragment.  Perform a bit more URL validation on initial_git_url
Allow clients to pass an initial_git_url of "empty", which creates a bare repo but does not add a commit.  When 'empty' is passed, the node will skip starting the gear and also skip the initial build.  This allows clients that want to send a local Git repository (one that isn't visible to OpenShift.com, for example) to avoid having to push/merge/delete the initial commit, and instead submit their own clean repo.  In this case, the user will get a result indicating that their repository is empty.

Also resolves 977985 by removing the message.
Merge remote-tracking branch 'origin/master' into bug_970257_support_git_at_urls

Conflicts:
	node/lib/openshift-origin-node/model/v2_cart_model.rb
Merge remote-tracking branch 'origin/master' into bug_970257_support_git_at_urls

Conflicts:
	controller/app/controllers/applications_controller.rb
	node/lib/openshift-origin-node/model/application_container.rb
Tests pass fully (add initial_git_url for earlier api versions).  Control what values of URI get persisted to DB (passwords and userinfo from clone specs should not be)
Merge pull request #2965 from kraman/alias_regex_fix

Merged by openshift-bot
Rename migrate to upgrade in code

Trello: https://trello.com/c/1KV8NmDJ (online_runtime_319)
Merge pull request #2967 from pmorie/dev/os_migrations

Merged by openshift-bot
Merge pull request #2927 from smarterclayton/bug_970257_support_git_at_urls

Merged by openshift-bot
Bug 977034 - Removing IDENT breaks deconfigure
Bug 977034 - Removing IDENT breaks destroy

* introduced error when logging error message
Merge pull request #2968 from jwhonce/bug/977034

Merged by openshift-bot
Moving Node classes into Runtime namespace
Removing UnixUser
Moving functionality into SELinux plugin class
Refactor code to call set_ro_permission/set_rw_permission instead of calling chown/chcon
Refactor code to use run_in_container_context/run_in_root_context calls instead of generically calling oo_spawn and passing uid.
Modify frontend httpd/proxy classes to accept a container object instead of indivigual properties
Explicitly create a group for the gear user and fail if group cannot be created.
Moving selinux and libvirt container plugins into seperate gem files
Added nsjoin which allows joining a running container
Temporarily disabled cgroups
Moved gear dir to /var/lib/openshift/gears for libvirt container
Moved shell definition into container plugin rather than application container
Make port-forwarding container specific.
  * SELinux container uses port-proxy
  * Libvirt container uses IP Tables
Fixing tests (assuming selinux container for now)
Automatic commit of package [rubygem-openshift-origin-container-selinux] release [0.0.1-1].