New compiler and bytecodes for foreach and lmap: 70% faster

* speed as measured by http://wiki.tcl.tk/39021: runs in <1/3 the time
  the time
* still need to adapt array-set to use this
* assemble.test-16.5 or 16.6 bombs in a purify/symbols build (?)
* removing the old opcodes would force old .tbc files to be recompiled, or
  an adaptation of tbcload to rwrite all foreachs
add comments on field "misuse"
add comments on INST_FOREACH_*
tighter mem management
tighter mem management in array-set compiler
adapted the array-set compiler to use the new foreach opcodes
3x speed improvement in foreach, via new compiler and opcodes. The old version remains for old .tbc sake, but is unused in the core.
Stop printing undefined values in disassembled code.
Introducing a new union member in Tcl_Obj is not a good idea in a patch release, especially using "long". 
Better allow iterNum and iterMax to grow to ssize_t (or size_t) in Tcl 9 (or 8.x, why not?). 
Usage of "long" in public API causes interoperability problems between Cygwin64 and Win64 (probably no-one cares except me).
Oops, wrong macro.
merge trunk
change NULL to INT2PTR(0), for clarity
change NULL to INT2PTR(0), for clarity
new INST_LMAP_COLLECT, speeds up lmap and eliminates the need for a temp var
fix stack computations for lmap
simplifying: drop early the evaled script
store options early: simplify compiler, reduce stack manipulations
simplify: remove the special case
new test (fails on trunk!), and fix for bug
comments