mal_interpreter: fix spurious hangs of DFLOWworker and scheduler
mal_interpreter: fix spurious hangs of DFLOWworker and scheduler

Properly check last is a positive value.

The last component was not checked and hence when -1, was retrieved as
array index.  On 64-bits Intel-endian platforms, this apparently yielded
in coincidentially zero, while on 32-bits platforms, this returned some
random number.  From there a cascade of wrong reads was done, just not
always causing a segfault.  As a result, we stuck too long in a loop
waiting for work to be finished.

zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb,zyzyis/monetdb