mixed *unique_array(object *obarr, string separator)

Groups objects together for which the 'separator' function returns the same 
value. 'obarr' should be an array of objects, other types are ignored.
The 'separator' function is called only once in each object in 'obarr'. The
return value is an array of arrays of objects on the form:

   ({
       ({Same1:1, Same1:2, Same1:3, .... Same1:N }),
       ({Same2:1, Same2:2, Same2:3, .... Same2:N }),
       ({Same3:1, Same3:2, Same3:3, .... Same3:N }),
                     ....
                     ....
       ({SameM:1, SameM:2, SameM:3, .... SameM:N }),
   })
	

