Generate errors for empty constructors instead of asserting

This causes the following tests to pass:

     glslparsertest/glsl2/constructor-10.vert
diff --git a/ast_function.cpp b/ast_function.cpp
index 691e6ae..ff2dfa5 100644
--- a/ast_function.cpp
+++ b/ast_function.cpp
@@ -513,7 +513,14 @@
 
 	 bool all_parameters_are_constant = true;
 
-	 assert(!this->expressions.is_empty());
+	 /* This handles invalid constructor calls such as 'vec4 v = vec4();'
+	  */
+	 if (this->expressions.is_empty()) {
+	    _mesa_glsl_error(& loc, state, "too few components to construct "
+			     "`%s'",
+			     constructor_type->name);
+	    return ir_call::get_error_instruction();
+	 }
 
 	 foreach_list (n, &this->expressions) {
 	    ast_node *ast = exec_node_data(ast_node, n, link);