BUG/MINOR: checks: return correct error code for srv_parse_agent_check

In srv_parse_agent_check the error code is not returned in case
something goes wrong. The value 0 is always return.

Additionally, there's a small cleanup of unreachable returns that in
most checks are not present either and removed in two places they were
present. This makes the code consistent across the different checks.

(cherry picked from commit dfee217b68a241f2723c2a4b67d2af187f0b6690)
[cf: Must be backported as far as 2.2]
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
diff --git a/src/check.c b/src/check.c
index 3403962..db0409c 100644
--- a/src/check.c
+++ b/src/check.c
@@ -1897,7 +1897,7 @@
 	srv->do_agent = 1;
 
   out:
-	return 0;
+	return err_code;
 
   error:
 	deinit_srv_agent_check(srv);
@@ -2155,7 +2155,6 @@
 	deinit_srv_agent_check(srv);
 	err_code |= ERR_ALERT | ERR_FATAL;
 	goto out;
-	return 0;
 }
 
 /* Parse the "fall" server keyword */
@@ -2182,7 +2181,6 @@
 	deinit_srv_agent_check(srv);
 	err_code |= ERR_ALERT | ERR_FATAL;
 	goto out;
-	return 0;
 }
 
 /* Parse the "inter" server keyword */