TODO:

* It seems the local case optimization can go wrong when
  invoking bogus methods from a different interface on an Object ref.
	+ this is to do with
		a) not checking the vepv offset we get
		b) not expanding the lookup of the vepv offset at all.

* Thread safety
	+ apparently g_object_ref / unref are not thread safe
	  we need linc_object_ref / unref instead that does
	  a LINC_MUTEX_LOCK on the global object lifecycle lock
	  that needs to move into linc ... sigh !

	+ we need to ensure that linc does no signal emissions,
	  since these are horribly slow and again not safe.

* Optimization
	+ we need some concept of align == native align flagged
	  on TypeCodes, so we can blat things quickly with memcpy
	  in a generic way - eg. sequences of octets.

* Dragons:
	+ giop_recv_buffer.c (giop_connection_handle_input)
	  manages to go through the error condition a whole
	  load; _why_ is this ? - is it a recursive effect on
	  the method ? why are we called if there is no data ?
