A few functions in `gtk+' use something like

	const gpointer mem

in their prototypes.  Presumably it is supposed to mean that that the 
pointed-to memory will _not_ be modified through that pointer.  
Unfortunately, the above declaration doesn't do that.  It just means
that the variable `mem' will not be assigned to in the function body.
In fact, `const' is ignored in the prototype of the function.

This patch fixes that by

     1. Introducing a new `const pointer' type

	  typedef const void *g_const_pointer;

     2. Replacing occurances of `const gpointer' with `g_const_pointer'.
	I just used a simple grep for `const gpointer', and may have
	missed usage with more whitespace &c.

     3. Fixed a few unsafe conversions, using a couple of compile
        passes. Note that this analysis is _very_ incomplete,
	but should satisfy `gcc' for now.  

Other compilers could identify more of these, which can be handled on
demand.  In the meantime, someone should do a `const-correctness' audit
(I'll do it once I have more time, and if nobody else does it before).
