Move type operations to another structure

Every type has free, print, check_constraints, ber_decoder, der_encoder,
xer_decoder, xer_encoder, uper_decoder, uper_encoder and outmost_tag
operations. We move them out to a separate structure asn_TYPE_operation_t.

Combined with previous logic simplification, these operations are based
on ASN.1 basic types, constructed types and string types. So we can
reduce the space occupied by asn_TYPE_descriptor_t variables.
diff --git a/skeletons/tests/check-OIDs.c b/skeletons/tests/check-OIDs.c
index fbb0948..92c27d5 100644
--- a/skeletons/tests/check-OIDs.c
+++ b/skeletons/tests/check-OIDs.c
@@ -246,7 +246,7 @@
 	int i;
 
 	printf("[%s] => ", xer); fflush(stdout);
-	rc = asn_DEF_RELATIVE_OID.xer_decoder(0,
+	rc = asn_DEF_RELATIVE_OID.op->xer_decoder(0,
 		&asn_DEF_RELATIVE_OID, (void **)stp, "t",
 			xer, strlen(xer));
 	if(expect_arcs == -1) {