Merge PR99 and its fixes to support parsing Information Object and Information Object Set

This is a collection of works :

1. Based on @zhanglei002's pull request 99.

2. A fix by @AuthenticEshkinKot and merged by @mouse07410 at
   commit 2c8d366bbe1fc4e4c041e9b0eb9779f8a42d754b of https://github.com/mouse07410/asn1c
   to support parsing of Information Object and Information Object Set

3. A fix by @Uri Blumenthal in asn1fix_derefv.c at :
   commit ec0ade4f87c807e763e3f35fc5466adb6dda3473 of https://github.com/mouse07410/asn1c
   to solve crash on asn1p_value_free().

4. My pull request 18 to @mouse07410's https://github.com/mouse07410/asn1c to solve
   problems found during parsing ASN.1 modules of S1AP, RANAP and J2735-201603.

5. My pull request 22 to @mouse07410's https://github.com/mouse07410/asn1c to solve issue 147
   and to solve the problem during parsing ASN.1 module of NBAP.

6. My pull request 23 to @mouse07410's https://github.com/mouse07410/asn1c to fix memory leakage
   introduced in aforementioned commits.
   Most code changes are the same as pull request 153 to this repository.

7. A fix of my bug in item 6 which result asn1c crash, fixed by @mouse07410.
diff --git a/libasn1parser/asn1p_expr.h b/libasn1parser/asn1p_expr.h
index dfeaa25..6f2503b 100644
--- a/libasn1parser/asn1p_expr.h
+++ b/libasn1parser/asn1p_expr.h
@@ -252,6 +252,7 @@
 	  TM_RECURSION	= (1<<0), /* Used to break recursion */
 	  TM_BROKEN	= (1<<1), /* A warning was already issued */
 	  TM_PERFROMCT	= (1<<2), /* PER FROM() constraint tables emitted */
+	  TM_NAMECLASH	= (1<<3)  /* Name clash found, need to add module name to resolve */
 	} _mark;
 
 	/*
@@ -285,4 +286,11 @@
 #define	TAG2STRING_BUFFER_SIZE	64	/* buf should be at least this big */
 char *asn1p_tag2string(struct asn1p_type_tag_s *tag, char *opt_buf);
 
+#define MODULE_NAME_OF(expr) \
+		((!expr) ? "" : \
+			(!(expr->_mark & TM_NAMECLASH) ? "" : \
+				(!expr->module ? "" : expr->module->ModuleName))), \
+		((!expr) ? "" : \
+			(!(expr->_mark & TM_NAMECLASH) ? "" : "_"))
+
 #endif	/* ASN1_PARSER_EXPR_H */