Do not allow package with missing version

e.g. android.hardware.foo::IFoo is not allowed.

Also, the regex rules in hidl-gen_l.ll and in FQName.cpp
was not consistent (optional version in hidl-gen_l.ll but
only minor version is optional in hidl-gen_y.yy). Hence
android.hardware.foo::IFoo has always been not allowed.
Still, the "?" is removed in both to make the rules consistent,
and there are explict checks in FQName::setTo and
FQName::applyDefaults to prevent this.

Test: compiles with mma
Change-Id: I9fd0a474c0313ab7c86c37f58f081a2c5a9b559c
diff --git a/hidl-gen_l.ll b/hidl-gen_l.ll
index 1fb0127..1275745 100644
--- a/hidl-gen_l.ll
+++ b/hidl-gen_l.ll
@@ -155,13 +155,13 @@
 "?"			{ return('?'); }
 "@"			{ return('@'); }
 
-{PATH}{VERSION}?"::"{PATH}      { yylval->str = strdup(yytext); return token::FQNAME; }
+{PATH}{VERSION}"::"{PATH}       { yylval->str = strdup(yytext); return token::FQNAME; }
 {VERSION}"::"{PATH}             { yylval->str = strdup(yytext); return token::FQNAME; }
 {PATH}{VERSION}                 { yylval->str = strdup(yytext); return token::FQNAME; }
 {COMPONENT}({DOT}{COMPONENT})+  { yylval->str = strdup(yytext); return token::FQNAME; }
 {COMPONENT}                     { yylval->str = strdup(yytext); return token::IDENTIFIER; }
 
-{PATH}{VERSION}?"::"{PATH}":"{COMPONENT}      { yylval->str = strdup(yytext); return token::FQNAME; }
+{PATH}{VERSION}"::"{PATH}":"{COMPONENT}       { yylval->str = strdup(yytext); return token::FQNAME; }
 {VERSION}"::"{PATH}":"{COMPONENT}             { yylval->str = strdup(yytext); return token::FQNAME; }
 {PATH}":"{COMPONENT}                          { yylval->str = strdup(yytext); return token::FQNAME; }