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)
Fix alias validation regex
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