Refactor the code to emit multiple-inclusion protection to
FilterGLAPISpecBase.  Since the size_h mode of glX_proto_size.py will be
used to generate multiple header files, add an option to specify the define
that is used for multiple-inclusion protection.

The changes to the header files in this commit are just a side-effect of the
changes to the Python scripts.
diff --git a/src/mesa/glapi/gl_XML.py b/src/mesa/glapi/gl_XML.py
index 16499df..21f6dc0 100644
--- a/src/mesa/glapi/gl_XML.py
+++ b/src/mesa/glapi/gl_XML.py
@@ -494,6 +494,7 @@
 		self.types = {}
 		self.xref = {}
 		self.factory = glItemFactory()
+		self.header_tag = None
 
 
 	def find_type(self,type_name):
@@ -529,6 +530,10 @@
 		print ' * ' + self.license.replace('\n', '\n * ')
 		print ' */'
 		print ''
+		if self.header_tag:
+		    print '#if !defined( %s )' % (self.header_tag)
+		    print '#  define %s' % (self.header_tag)
+		    print ''
 		self.printRealHeader();
 		return
 
@@ -538,6 +543,9 @@
 
 		self.printFunctions()
 		self.printRealFooter()
+		if self.header_tag:
+		    print ''
+		    print '#endif /* !defined( %s ) */' % (self.header_tag)
 
 
 	def get_category_define(self):