[AETHER-748] Apps update does not work properly

- apps-update target has been renamed in apps
- update targets have been merged together with the app-name target. Updates are
performed with respect of the versions defined in Makefile.vars.
- remote update is used to sync up with the remote avoiding pull which can return -1
if we are not on a branch and updates only the branch we are on.
- checkout origin/{version} is used to avoid stale branches.
- checkout {version} is used to switch on local branches or specific commit

Additionally, updates ONOS to the latest published artifacts

Change-Id: I9caebb76219b2e8da05ca6f0858ee73478a92533
diff --git a/Makefile b/Makefile
index cac1126..b84e837 100644
--- a/Makefile
+++ b/Makefile
@@ -129,8 +129,11 @@
 		exit 1; \
 	fi
 
+	# Updates the repo and avoids any stale branches
+	cd ${TRELLIS_CONTROL_ROOT} && git remote update
+
 	# Try the git checkout first otherwise we download the review
-	if ! (cd ${TRELLIS_CONTROL_ROOT} && git checkout ${TRELLIS_CONTROL_VERSION}); then \
+	if ! (cd ${TRELLIS_CONTROL_ROOT} && (git checkout origin/${TRELLIS_CONTROL_VERSION} || git checkout ${TRELLIS_CONTROL_VERSION})); then \
 	if ! (cd ${TRELLIS_CONTROL_ROOT} && git fetch ${TRELLIS_CONTROL_REPO} ${TRELLIS_CONTROL_VERSION} && git checkout FETCH_HEAD); then \
 		echo "Unable to fetch the changes from the trellis-control repository"; \
 	fi \
@@ -139,15 +142,6 @@
 trellis-control-build: mvn_settings.xml local-apps trellis-control  ## : Builds trellis-control using local app or mvn
 	@./app-build.sh $@
 
-trellis-control-update: ## : downloads commits, files, and refs from remote trellis-control
-	cd ${TRELLIS_CONTROL_ROOT} && git fetch
-
-	# Try to pull - but fails if we have not checked a branch
-	if ! (cd ${TRELLIS_CONTROL_ROOT} && git pull); then \
-		echo "Unable to pull from the trellis-control repository"; \
-		exit 1; \
-	fi
-
 trellis-t3: ## : Checkout trellis-t3 code
 	if [ ! -d "trellis-t3" ]; then \
 		git clone ${TRELLIS_T3_REPO}; \
@@ -159,7 +153,9 @@
 		exit 1; \
 	fi
 
-	if ! (cd ${TRELLIS_T3_ROOT} && git checkout ${TRELLIS_T3_VERSION}); then \
+	cd ${TRELLIS_T3_ROOT} && git remote update
+
+	if ! (cd ${TRELLIS_T3_ROOT} && (git checkout origin/${TRELLIS_T3_VERSION} || git checkout ${TRELLIS_T3_VERSION})); then \
 	if ! (cd ${TRELLIS_T3_ROOT} && git fetch ${TRELLIS_T3_REPO} ${TRELLIS_T3_VERSION} && git checkout FETCH_HEAD); then \
 		echo "Unable to fetch the changes from the trellis-t3 repository"; \
 	fi \
@@ -168,14 +164,6 @@
 trellis-t3-build: mvn_settings.xml local-apps trellis-t3  ## : Builds trellis-t3 using local app or mvn
 	@./app-build.sh $@
 
-trellis-t3-update: ## : downloads commits, files, and refs from remote trellis-t3
-	cd ${TRELLIS_T3_ROOT} && git fetch
-
-	if ! (cd ${TRELLIS_T3_ROOT} && git pull); then \
-		echo "Unable to pull from the trellis-t3 repository"; \
-		exit 1; \
-	fi
-
 fabric-tofino: ## : Checkout fabric-tofino code
 	if [ ! -d "fabric-tofino" ]; then \
 		git clone ${FABRIC_TOFINO_REPO}; \
@@ -187,7 +175,9 @@
 		exit 1; \
 	fi
 
-	if ! (cd ${FABRIC_TOFINO_ROOT} && git checkout ${FABRIC_TOFINO_VERSION}); then \
+	cd ${FABRIC_TOFINO_ROOT} && git remote update
+
+	if ! (cd ${FABRIC_TOFINO_ROOT} && (git checkout origin/${FABRIC_TOFINO_VERSION} || git checkout ${FABRIC_TOFINO_VERSION})); then \
 	if ! (cd ${FABRIC_TOFINO_ROOT} && git fetch ${FABRIC_TOFINO_REPO} ${FABRIC_TOFINO_VERSION} && git checkout FETCH_HEAD); then \
 		echo "Unable to fetch the changes from the fabric-tofino repository"; \
 		exit 1; \
@@ -197,14 +187,6 @@
 fabric-tofino-build: mvn_settings.xml local-apps fabric-tofino  ## : Builds fabric-tofino using local app or mvn
 	@./app-build.sh $@
 
-fabric-tofino-update: ## : downloads commits, files, and refs from remote fabric-tofino
-	cd ${FABRIC_TOFINO_ROOT} && git fetch
-
-	if ! (cd ${FABRIC_TOFINO_ROOT} && git pull); then \
-		echo "Unable to pull from the fabric-tofino repository"; \
-		exit 1; \
-	fi
-
 up4: ## : Checkout up4 code
 	if [ ! -d "up4" ]; then \
 		git clone ${UP4_REPO}; \
@@ -216,7 +198,9 @@
 		exit 1; \
 	fi
 
-	if ! (cd ${UP4_ROOT} && git checkout ${UP4_VERSION}); then \
+	cd ${UP4_ROOT} && git remote update
+
+	if ! (cd ${UP4_ROOT} && (git checkout origin/${UP4_VERSION} || git checkout ${UP4_VERSION})); then \
 	if ! (cd ${UP4_ROOT} && git fetch ${UP4_REPO} ${UP4_VERSION} && git checkout FETCH_HEAD); then \
 		echo "Unable to fetch the changes from the up4 repository"; \
 		exit 1; \
@@ -226,14 +210,6 @@
 up4-build: mvn_settings.xml local-apps up4  ## : Builds up4 using local app
 	@./app-build.sh $@
 
-up4-update: ## : downloads commits, files, and refs from remote up4
-	cd ${UP4_ROOT} && git fetch
-
-	if ! (cd ${UP4_ROOT} && git pull); then \
-		echo "Unable to pull from the up4 repository"; \
-		exit 1; \
-	fi
-
 kafka-onos: ## : Checkout kafka-onos code
 	if [ ! -d "kafka-onos" ]; then \
 		git clone ${KAFKA_ONOS_REPO}; \
@@ -245,7 +221,9 @@
 		exit 1; \
 	fi
 
-	if ! (cd ${KAFKA_ONOS_ROOT} && git checkout ${KAFKA_ONOS_VERSION}); then \
+	cd ${KAFKA_ONOS_ROOT} && git remote update
+
+	if ! (cd ${KAFKA_ONOS_ROOT} && (git checkout origin/${KAFKA_ONOS_VERSION} || git checkout ${KAFKA_ONOS_VERSION})); then \
 	if ! (cd ${KAFKA_ONOS_ROOT} && git fetch ${KAFKA_ONOS_REPO} ${KAFKA_ONOS_VERSION} && git checkout FETCH_HEAD); then \
 		echo "Unable to fetch the changes from the kafka-onos repository"; \
 	fi \
@@ -254,14 +232,6 @@
 kafka-onos-build: mvn_settings.xml local-apps kafka-onos  ## : Builds kafka-onos using local app or mvn
 	@./app-build.sh $@
 
-kafka-onos-update: ## : downloads commits, files, and refs from remote kafka-onos
-	cd ${KAFKA_ONOS_ROOT} && git fetch
-
-	if ! (cd ${KAFKA_ONOS_ROOT} && git pull); then \
-		echo "Unable to pull from the kafka-onos repository"; \
-		exit 1; \
-	fi
-
 fabric-tna: ## : Checkout fabric-tna code
 	if [ ! -d "fabric-tna" ]; then \
 		git clone ${FABRIC_TNA_REPO}; \
@@ -273,7 +243,9 @@
 		exit 1; \
 	fi
 
-	if ! (cd ${FABRIC_TNA_ROOT} && git checkout ${FABRIC_TNA_VERSION}); then \
+	cd ${FABRIC_TNA_ROOT} && git remote update
+
+	if ! (cd ${FABRIC_TNA_ROOT} && (git checkout origin/${FABRIC_TNA_VERSION} || git checkout ${FABRIC_TNA_VERSION})); then \
 	if ! (cd ${FABRIC_TNA_ROOT} && git fetch ${FABRIC_TNA_REPO} ${FABRIC_TNA_VERSION} && git checkout FETCH_HEAD); then \
 		echo "Unable to fetch the changes from the fabric-tna repository"; \
 		exit 1; \
@@ -283,15 +255,7 @@
 fabric-tna-build: mvn_settings.xml local-apps fabric-tna  ## : Builds fabric-tna using local app
 	@./app-build.sh $@
 
-fabric-tna-update: ## : downloads commits, files, and refs from remote fabric-tna
-	cd ${FABRIC_TNA_ROOT} && git fetch
-
-	if ! (cd ${FABRIC_TNA_ROOT} && git pull); then \
-		echo "Unable to pull from the fabric-tna repository"; \
-		exit 1; \
-	fi
-
-apps-update: trellis-control-update trellis-t3-update fabric-tofino-update up4-update kafka-onos-update fabric-tna-update ## : downloads commits, files, and refs from remotes
+apps: trellis-control trellis-t3 fabric-tofino up4 kafka-onos fabric-tna ## : downloads commits, files, and refs from remotes
 
 apps-build: trellis-control-build trellis-t3-build fabric-tofino-build up4-build kafka-onos-build fabric-tna-build ## : Build the onos apps
 
@@ -306,22 +270,16 @@
 		exit 1; \
 	fi
 
+	cd ${ONOS_ROOT} && git remote update
+
 	# In case of failure, we do not proceed because we cannot build with mvn
-	if ! (cd ${ONOS_ROOT} && git checkout ${ONOS_VERSION}); then \
+	if ! (cd ${ONOS_ROOT} && (git checkout origin/${ONOS_VERSION} || git checkout ${ONOS_VERSION})); then \
 	if ! (cd ${ONOS_ROOT} && git fetch ${ONOS_REPO} ${ONOS_VERSION} && git checkout FETCH_HEAD); then \
 		echo "Unable to fetch the changes from the onos repository"; \
 		exit 1; \
 	fi \
 	fi
 
-onos-update: ## : downloads commits, files, and refs from remote onos
-	cd ${ONOS_ROOT} && git fetch
-
-	if ! (cd ${ONOS_ROOT} && git pull); then \
-		echo "Unable to pull from the onos repository"; \
-		exit 1; \
-	fi
-
 onos-build: onos ## : Builds the tost-onos docker image
 	# Set some env variables
 	cd ${ONOS_ROOT} && \