xlat: Using BYTECODE_SIZE is not always the right thing

Use the difference between IP and IP0 to figure out how many bytes
were used for the bytecode of the send message. Add a small test
case and try to make it as stable as possible.

For message sends we remember the bytecode length as calculated
by the decoding of the bytecodes.

2014-02-10  Holger Hans Peter Freyther  <holger@moiji-mobile.com>

	* xlat.c: Keep track of the bytecode length for sends.
xlat: Re-order external abort handling to fix

CTRL+C would queue an external user abort but lead to a NULL pointer
de-reference in the JIT. Move the abort handling code further down
to allow to save various variables first. This is matching what the
interpreter is doing.

2014-02-10  Holger Hans Peter Freyther  <holger@moiji-mobile.com>

	* interp-jit.inl: Change the time the abort handling
	is executed.
libgst: Free memory to avoid memory leaks

sval was allocated with strdup but not freed when the obstack of
the compilation was released. Allocate the string inside the obstack
to avoid this issue. Remember if a fileName has been dynamically
allocated and then free it. Free a buffer even if it contains the
empty string, free the function name after the function has been
resolved.

2014-02-10  Holger Hans Peter Freyther  <holger@moiji-mobile.com>

	* input.c: Free memory that has been dynamically allocated.
	* lex.c: Allocate string in the obstack.
	* prims.def: Free function name after usage.