compiler: Fix emit statment when using a simple variable as argument

When using

emit foo bar

with bar being a 'simple' variable (i.e. we do not need to perform
temporary memory allocations), the current intermediate tree looks
like

EmitNode(foo)
      |
      --- MemoryVectorNode(bar)

which is wrong, as EmitNode's child nodes should only be used when
temporary memory allocation is necessary. As a result, the bytecode
for MemoryVectorNode will be emitted, resulting in a spurious LOAD
operation:

LOAD 35
EMIT foo addr 35 size 1

This spurious LOAD can potentially currupt Aseba's stack, which in turn
can have suprising effect when happening inside a subroutine call.

The fix is simple: add the MemoryVectorNode as a child of EmitNode only
if it is a temporary memory allocation. Only in such case, the emitted
bytecode will be correct, with balanced LOAD/STORE operations.
compiler: Fix a memory leak

Commit 3c982bc563dcb3a9aacf3b5ce9b6d83040f63424 introduced a memory
leak, as now the MemoryVectorNode is not always added as a child
node of the EmitNode. The memory reclaim must be done manually in
this case.
Merge pull request #299 from vaussard/fix-simple-emit

Fix simple emit