centralize handling of common errors like "endpoint not found"

Previously we
* did not distinguish between the cause of errors in mgcp_header_parse
* common errors were not handled in mgcp_handle_message() but in
  individual per-verb functions

Let's centralize the handling of generating error responses and remove
that burden from the individual per-verb handler functions.

Change-Id: I463b27306e10ae3b021583ed102977e7299e5e66
diff --git a/src/libosmo-mgcp/mgcp_msg.c b/src/libosmo-mgcp/mgcp_msg.c
index d6174df..7f05a44 100644
--- a/src/libosmo-mgcp/mgcp_msg.c
+++ b/src/libosmo-mgcp/mgcp_msg.c
@@ -230,21 +230,21 @@
 			if (!pdata->endp) {
 				LOGP(DLMGCP, LOGL_ERROR,
 				     "Unable to find Endpoint `%s'\n", elem);
-				return -1;
+				return -500;
 			}
 			break;
 		case 2:
 			if (strcmp("MGCP", elem)) {
 				LOGP(DLMGCP, LOGL_ERROR,
 				     "MGCP header parsing error\n");
-				return -1;
+				return -510;
 			}
 			break;
 		case 3:
 			if (strcmp("1.0", elem)) {
 				LOGP(DLMGCP, LOGL_ERROR, "MGCP version `%s' "
 				     "not supported\n", elem);
-				return -1;
+				return -528;
 			}
 			break;
 		}
@@ -255,7 +255,7 @@
 		LOGP(DLMGCP, LOGL_ERROR, "MGCP status line too short.\n");
 		pdata->trans = "000000";
 		pdata->endp = NULL;
-		return -1;
+		return -510;
 	}
 
 	return 0;