I am listing the choices taken so far and options available so as to 
be able to experiment later as to which approach was best. The conclusions
need to be drawn emperically.

1) IMPLEMENTED: using Y registers for Ptuple and A registers for CTuple and
	once unification succeeds, allocating space for them and then copying
	them into this space. This involves initially copying the Goal tuple
	into the Y registers. This permits growth of CTuple during close 
	without doing additional copies. It also permits the use of the 
	Y registers directly to close the PTuple if the matching clause
	was a fact. (Then no allocation/deallocation is necessary for CTuple).

   OPTION: Allocating the space for PTuple and CTuple rightaway and use this
	space directly for unification.

2) IMPLEMENTED: Similar to above, but during the response phase. Y registers
	are used to build the response - i.e. permit growth of the response
	tuple during close of the back unification phase.

   OPTION: again same as above.

3) BUILTINS: Right now only one op code is being generated for all builtins
	and BeBuiltinTuple is called - which is a big switch statement.
	This needs to be changed soon into a more efficient - one opcode
	per builtin. 

