Restructuring of the stack

Until now, each monad had a stack, where each instruction was popped off and
executed in turn. It was horribly done though, because it was implemented as a
list (instructions were popped off the beginning of the list, meaning a whole
load of unnecessary mallocs and frees, and shuffling things around.

Since the list datastructure is a variable-length heterogeneous list of both
null-terminated strings and other lists, it is much more efficient to push an
instruction onto the END of the list.

(To this end, the field in the struct*monad has been renamed to "instrlist",
short for instruction list).
Merge branch 'master' of https://github.com/wilsonsamm/libtranny